]> git.ardis.lu - csvio/commitdiff
Add test for changing elapsed status
authorArdis Lu <ardisglu@gmail.com>
Tue, 28 Jan 2025 06:33:02 +0000 (22:33 -0800)
committerArdis Lu <ardisglu@gmail.com>
Tue, 28 Jan 2025 06:33:02 +0000 (22:33 -0800)
test/core.test.js

index dedbc42d1d6486883aa96a73fe6a2edd68263237..5bb3f9cbf71981ed008af52906424194d73d1b3d 100644 (file)
@@ -536,6 +536,25 @@ suite('CSVWriter status', { concurrency: true }, () => {
     await createCSVMockStream([['']]).pipeTo(writer);
     ok(writer.status.elapsed > 0);
   });
+  test('elapsed time changes while writing', { concurrency: true }, async (t) => {
+    const temp = await createTempFile();
+    t.after(async () => await unlink(temp));
+    const writer = new CSVWriter(temp);
+    const elapsedArray = [];
+    await createCSVMockStream([[''], [''], [''], ['']])
+      .pipeThrough(new CSVTransformer(async r => {
+        const { elapsed } = writer.status;
+        elapsedArray.push(elapsed);
+        await setTimeout(5);
+        return r;
+      }, { handleHeaders: true }))
+      .pipeTo(writer);
+    const { elapsed } = writer.status;
+    elapsedArray.push(elapsed);
+    const uniqueElapsed = new Set(elapsedArray);
+    deepStrictEqual(elapsedArray.length, 5);
+    deepStrictEqual(elapsedArray.length, uniqueElapsed.size);
+  });
   test('elapsed time does not change after finishing writing', { concurrency: true }, async (t) => {
     const temp = await createTempFile();
     t.after(async () => await unlink(temp));
This page took 0.037528 seconds and 4 git commands to generate.