From ace148b616a22b27f1bcfbdce6ccbb4e007772fe Mon Sep 17 00:00:00 2001 From: Ardis Lu Date: Mon, 28 Apr 2025 21:50:32 -0700 Subject: [PATCH] Add tests for `cancel`, `close`, and `abort` --- test/core.test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/core.test.js b/test/core.test.js index 02e9225..94f5e8f 100644 --- a/test/core.test.js +++ b/test/core.test.js @@ -268,6 +268,13 @@ suite('CSVReader', { concurrency: true }, () => { } }); } + test('can cancel', { concurrency: true }, async () => { + const path = new URL('./data/simple.csv', import.meta.url); + const s = new CSVReader(path); + await s.cancel(); + const c = await s.getReader().read().then(({ value }) => value); + deepStrictEqual(c, undefined); + }); }); suite('CSVTransformer', { concurrency: true }, () => { @@ -616,6 +623,28 @@ suite('CSVWriter', { concurrency: true }, () => { ['1', '1'], ])); }); + test('can close', { concurrency: true }, async (t) => { + const temp = await createTempFile(); + t.after(async () => await unlink(temp)); + const stream = new CSVWriter(temp); + const writer = stream.getWriter(); + await writer.write('a'); + writer.releaseLock(); + await stream.close(); + await rejects(writer.write('b')); + await new CSVReader(temp).pipeTo(csvStreamEqualWritable([['a']])); + }); + test('can abort', { concurrency: true }, async (t) => { + const temp = await createTempFile(); + t.after(async () => await unlink(temp)); + const stream = new CSVWriter(temp); + const writer = stream.getWriter(); + await writer.write('a'); + writer.releaseLock(); + await stream.abort(); + await rejects(writer.write('b')); + await new CSVReader(temp).pipeTo(csvStreamEqualWritable([['a']])); + }); }); suite('CSVWriter status', { concurrency: true }, () => { -- 2.47.3