]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/utils/miscs/email.ts
Fix socket.io websocket connection
[github/Chocobozzz/PeerTube.git] / shared / utils / miscs / email.ts
index 108f7d3d93b8bb1c2f2f91e0bd33456d5e19504a..6fac7621f2bb3204c48b22d7c16127e6ffaad8a3 100644 (file)
@@ -1,22 +1,20 @@
-import * as child from 'child_process'
+import { fork, ChildProcess } from 'child_process'
 
 class MockSmtpServer {
 
   private static instance: MockSmtpServer
   private started = false
-  private emailChildProcess: child.ChildProcess
+  private emailChildProcess: ChildProcess
   private emails: object[]
 
   private constructor () {
-    this.emailChildProcess = child.fork(`${__dirname}/email-child-process`, [], { silent: true })
+    this.emailChildProcess = fork(`${__dirname}/email-child-process`, [])
+
     this.emailChildProcess.on('message', (msg) => {
       if (msg.email) {
         return this.emails.push(msg.email)
       }
     })
-    process.on('exit', () => {
-      this.emailChildProcess.kill()
-    })
   }
 
   collectEmails (emailsCollection: object[]) {
@@ -43,6 +41,13 @@ class MockSmtpServer {
     })
   }
 
+  kill () {
+    process.kill(this.emailChildProcess.pid)
+
+    this.emailChildProcess = null
+    MockSmtpServer.instance = null
+  }
+
   static get Instance () {
     return this.instance || (this.instance = new this())
   }