@juliendu11/japa-ui-reporter 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -97,6 +97,16 @@ export default function createServer(options) {
97
97
  console.error('[TCP] Socket error:', err.message);
98
98
  });
99
99
  });
100
+ httpServer.on('error', (err) => {
101
+ if (err.code !== 'EADDRINUSE') {
102
+ console.error('[HTTP] Server error:', err.message);
103
+ }
104
+ });
105
+ tcpServer.on('error', (err) => {
106
+ if (err.code !== 'EADDRINUSE') {
107
+ console.error('[TCP] Server error:', err.message);
108
+ }
109
+ });
100
110
  httpServer.listen(options.ui.port, () => {
101
111
  console.log(`[HTTP] Dashboard available at http://localhost:${options.ui.port}`);
102
112
  });
@@ -105,17 +115,11 @@ export default function createServer(options) {
105
115
  });
106
116
  const stop = () => {
107
117
  console.log('[SERVER] Shutting down...');
108
- tcpServer.close(() => {
109
- console.log('[TCP] Server closed');
110
- });
111
- httpServer.close(() => {
112
- console.log('[HTTP] Server closed');
113
- });
114
118
  for (const client of dashboardClients) {
115
119
  client.close();
116
120
  }
117
- tcpServer.close();
118
- httpServer.close();
121
+ tcpServer.close(() => console.log('[TCP] Server closed'));
122
+ httpServer.close(() => console.log('[HTTP] Server closed'));
119
123
  };
120
124
  return {
121
125
  url: `http://localhost:${options.ui.port}/`,
@@ -4,6 +4,7 @@ export default class UIReporter extends BaseReporter {
4
4
  static name: string;
5
5
  private client;
6
6
  private options;
7
+ private stopServer;
7
8
  constructor(options?: UIReporterOptions);
8
9
  onTestStart(): void;
9
10
  onTestEnd(testPayload: any): void;
@@ -8,6 +8,7 @@ export default class UIReporter extends BaseReporter {
8
8
  static name = 'ui';
9
9
  client = new net.Socket();
10
10
  options;
11
+ stopServer = null;
11
12
  constructor(options) {
12
13
  super(options);
13
14
  this.options = options || {};
@@ -40,13 +41,12 @@ export default class UIReporter extends BaseReporter {
40
41
  async start() {
41
42
  const uiPort = this.options?.ui?.port ?? DEFAULT_UI_PORT;
42
43
  const reporterPort = this.options?.reporter?.port ?? DEFAULT_REPORTER_PORT;
43
- createServer({
44
+ const { stop } = createServer({
44
45
  ui: { port: uiPort },
45
46
  reporter: { port: reporterPort }
46
47
  });
47
- const HOST = '127.0.0.1';
48
- const PORT = reporterPort;
49
- this.client.connect(PORT, HOST, () => {
48
+ this.stopServer = stop;
49
+ this.client.connect(reporterPort, '127.0.0.1', () => {
50
50
  if (this.client) {
51
51
  this.client.write('CLEAR\n');
52
52
  }
@@ -55,5 +55,11 @@ export default class UIReporter extends BaseReporter {
55
55
  await new Promise((resolve) => setTimeout(resolve, 1000));
56
56
  }
57
57
  async end() {
58
+ if (this.client) {
59
+ this.client.write('END\n');
60
+ this.client.end();
61
+ }
62
+ await new Promise((resolve) => setTimeout(resolve, 500));
63
+ this.stopServer?.();
58
64
  }
59
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juliendu11/japa-ui-reporter",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",