From: Ardis Lu Date: Tue, 29 Apr 2025 04:50:32 +0000 (-0700) Subject: Add tests for `cancel`, `close`, and `abort` X-Git-Tag: v0.1.0~24 X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=ace148b616a22b27f1bcfbdce6ccbb4e007772fe;p=csvio Add tests for `cancel`, `close`, and `abort` --- 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 }, () => {