@auto-engineer/pipeline 1.98.0 → 1.99.0

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.
package/package.json CHANGED
@@ -14,8 +14,8 @@
14
14
  "get-port": "^7.1.0",
15
15
  "jose": "^5.9.6",
16
16
  "nanoid": "^5.0.0",
17
- "@auto-engineer/file-store": "1.98.0",
18
- "@auto-engineer/message-bus": "1.98.0"
17
+ "@auto-engineer/file-store": "1.99.0",
18
+ "@auto-engineer/message-bus": "1.99.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/cors": "^2.8.17",
@@ -24,7 +24,7 @@
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
- "version": "1.98.0",
27
+ "version": "1.99.0",
28
28
  "scripts": {
29
29
  "build": "tsc && tsx ../../scripts/fix-esm-imports.ts",
30
30
  "test": "vitest run --reporter=dot",
@@ -1,3 +1,4 @@
1
+ import http from 'node:http';
1
2
  import { createPipelineServerV2 } from './pipeline-server-v2.js';
2
3
 
3
4
  describe('PipelineServerV2', () => {
@@ -46,16 +47,25 @@ describe('PipelineServerV2', () => {
46
47
 
47
48
  const port = await server.start();
48
49
 
49
- const controller = new AbortController();
50
- const response = await fetch(`http://localhost:${port}/events`, {
51
- signal: controller.signal,
50
+ const { response, dataPromise, destroy } = await new Promise<{
51
+ response: http.IncomingMessage;
52
+ dataPromise: Promise<string>;
53
+ destroy: () => void;
54
+ }>((resolve) => {
55
+ const req = http.get(`http://localhost:${port}/events`, (res) => {
56
+ const chunks: string[] = [];
57
+ const dataPromise = new Promise<string>((resolveData) => {
58
+ res.on('data', (chunk: Buffer) => {
59
+ chunks.push(chunk.toString());
60
+ resolveData(chunks.join(''));
61
+ });
62
+ });
63
+ resolve({ response: res, dataPromise, destroy: () => req.destroy() });
64
+ });
52
65
  });
53
66
 
54
- expect(response.status).toBe(200);
55
- expect(response.headers.get('content-type')).toContain('text/event-stream');
56
-
57
- const reader = response.body!.getReader();
58
- const decoder = new TextDecoder();
67
+ expect(response.statusCode).toBe(200);
68
+ expect(response.headers['content-type']).toContain('text/event-stream');
59
69
 
60
70
  await fetch(`http://localhost:${port}/command`, {
61
71
  method: 'POST',
@@ -63,14 +73,12 @@ describe('PipelineServerV2', () => {
63
73
  body: JSON.stringify({ type: 'Ping', data: {} }),
64
74
  });
65
75
 
66
- const { value } = await reader.read();
67
- const text = decoder.decode(value);
76
+ const text = await dataPromise;
68
77
  const parsed = JSON.parse(text.replace('data: ', '').trim());
69
78
 
70
79
  expect(parsed).toEqual({ type: 'Pong', data: { value: 42 } });
71
80
 
72
- await reader.cancel().catch(() => {});
73
- controller.abort();
81
+ destroy();
74
82
  await server.stop();
75
83
  });
76
84
 
@@ -42,7 +42,7 @@ export async function createPipelineServerV2(config?: { port?: number }) {
42
42
 
43
43
  engine.onEvent(listener);
44
44
 
45
- req.on('close', () => {
45
+ res.on('close', () => {
46
46
  connected = false;
47
47
  });
48
48
  });