-import { fork, ChildProcess } from 'child_process'
+import { ChildProcess, fork } from 'child_process'
+import { randomInt } from '../../core-utils/miscs/miscs'
+import { parallelTests } from '../server/servers'
class MockSmtpServer {
}
collectEmails (emailsCollection: object[]) {
- return new Promise((res, rej) => {
+ return new Promise<number>((res, rej) => {
+ const port = parallelTests() ? randomInt(1000, 2000) : 1025
+
if (this.started) {
this.emails = emailsCollection
return res()
// ensure maildev isn't started until
// unexpected exit can be reported to test runner
- this.emailChildProcess.send({ start: true })
+ this.emailChildProcess.send({ start: true, port })
this.emailChildProcess.on('exit', () => {
return rej(new Error('maildev exited unexpectedly, confirm port not in use'))
})
}
this.started = true
this.emails = emailsCollection
- return res()
+ return res(port)
})
})
}