Skip to content

Commit ece6d00

Browse files
committed
Add unit tests for default WHATWG ReadableStream stream
1 parent 0ae700e commit ece6d00

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
"del-cli": "^6.0.0",
128128
"mime": "^4.0.6",
129129
"mocha": "^11.1.0",
130-
"node-readable-to-web-readable-stream": "^0.3.1",
130+
"node-readable-to-web-readable-stream": "^0.4.0",
131131
"remark-cli": "^12.0.1",
132132
"remark-preset-lint-consistent": "^6.0.1",
133133
"ts-node": "^10.9.2",

test/metadata-parsers.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fs from 'node:fs';
22

33
import * as mm from '../lib/index.js';
44
import type { IAudioMetadata, IOptions } from '../lib/index.js';
5-
import { makeReadableByteFileStream } from './util.js';
5+
import { makeByteReadableStreamFromFile, makeDefaultReadableStreamFromFile } from './util.js';
66

77
type ParseFileMethod = (skipTest: () => void, filePath: string, mimeType?: string, options?: IOptions) => Promise<IAudioMetadata>;
88

@@ -36,10 +36,21 @@ export const Parsers: IParser[] = [
3636
}
3737
}
3838
}, {
39-
description: 'parseWebStream',
39+
description: 'parseWebStream from byte ReadableStream',
4040
webStream: true,
4141
parse: async (skipTest, filePath: string, mimeType?: string, options?: IOptions) => {
42-
const webStream = await makeReadableByteFileStream(filePath);
42+
const webStream = await makeByteReadableStreamFromFile(filePath);
43+
try {
44+
return await mm.parseWebStream(webStream.stream, {mimeType: mimeType, size: webStream.fileSize}, options);
45+
} finally {
46+
await webStream.stream.cancel();
47+
}
48+
}
49+
}, {
50+
description: 'parseWebStream from default ReadableStream',
51+
webStream: true,
52+
parse: async (skipTest, filePath: string, mimeType?: string, options?: IOptions) => {
53+
const webStream = await makeDefaultReadableStreamFromFile(filePath);
4354
try {
4455
return await mm.parseWebStream(webStream.stream, {mimeType: mimeType, size: webStream.fileSize}, options);
4556
} finally {

test/util.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Readable } from 'node:stream';
44
import path from 'node:path';
55
import { fileURLToPath } from 'node:url';
66
import { stat } from 'node:fs/promises';
7-
import { makeByteReadableStreamFromNodeReadable } from 'node-readable-to-web-readable-stream';
7+
import { makeByteReadableStreamFromNodeReadable, makeDefaultReadableStreamFromNodeReadable } from 'node-readable-to-web-readable-stream';
88
import { createReadStream } from 'node:fs';
99

1010
const filename = fileURLToPath(import.meta.url);
@@ -25,7 +25,7 @@ export class SourceStream extends Readable {
2525
}
2626
}
2727

28-
export async function makeReadableByteFileStream(filename: string, delay = 0) {
28+
export async function makeByteReadableStreamFromFile(filename: string, delay = 0) {
2929

3030
const fileInfo = await stat(filename);
3131
const nodeStream = createReadStream(filename);
@@ -36,4 +36,15 @@ export async function makeReadableByteFileStream(filename: string, delay = 0) {
3636
};
3737
}
3838

39+
export async function makeDefaultReadableStreamFromFile(filename: string, delay = 0) {
40+
41+
const fileInfo = await stat(filename);
42+
const nodeStream = createReadStream(filename);
43+
44+
return {
45+
fileSize: fileInfo.size,
46+
stream: makeDefaultReadableStreamFromNodeReadable(nodeStream)
47+
};
48+
}
49+
3950
export const samplePath = path.join(dirname, 'samples');

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2350,7 +2350,7 @@ __metadata:
23502350
media-typer: "npm:^1.1.0"
23512351
mime: "npm:^4.0.6"
23522352
mocha: "npm:^11.1.0"
2353-
node-readable-to-web-readable-stream: "npm:^0.3.1"
2353+
node-readable-to-web-readable-stream: "npm:^0.4.0"
23542354
remark-cli: "npm:^12.0.1"
23552355
remark-preset-lint-consistent: "npm:^6.0.1"
23562356
strtok3: "npm:^10.2.1"
@@ -2388,10 +2388,10 @@ __metadata:
23882388
languageName: node
23892389
linkType: hard
23902390

2391-
"node-readable-to-web-readable-stream@npm:^0.3.1":
2392-
version: 0.3.1
2393-
resolution: "node-readable-to-web-readable-stream@npm:0.3.1"
2394-
checksum: 10c0/0034cc725399057444eec20a5b09413c164f37a10d073176b7889bc7926545f85bc30f12026ec997a30d18a8793248776e5bb370b213cab9f0f5f53b68d9fdb5
2391+
"node-readable-to-web-readable-stream@npm:^0.4.0":
2392+
version: 0.4.0
2393+
resolution: "node-readable-to-web-readable-stream@npm:0.4.0"
2394+
checksum: 10c0/446d257f1eab223c9171418f559d928a1707e85911068451cb8f3246555312affec446842b2d1ca1e1c785d7232da12f1e8ff7ef31e944fc7bf3debdb301846c
23952395
languageName: node
23962396
linkType: hard
23972397

0 commit comments

Comments
 (0)