webring 1.6.1-dev.2741 → 1.6.1-dev.2760
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/dist/index.test.js +35 -18
- package/dist/index.test.js.map +1 -1
- package/package.json +1 -1
- package/src/index.test.ts +37 -18
package/dist/index.test.js
CHANGED
|
@@ -1,18 +1,36 @@
|
|
|
1
|
-
import { expect, test } from "bun:test";
|
|
1
|
+
import { afterAll, expect, test } from "bun:test";
|
|
2
2
|
import { run } from "./index.js";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import { mkdtemp } from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
const testDataDir = path.join(import.meta.dir, "testdata");
|
|
7
|
+
function assignedPort(port) {
|
|
8
|
+
if (port === undefined) {
|
|
9
|
+
throw new Error("Bun did not assign a test server port");
|
|
10
|
+
}
|
|
11
|
+
return port;
|
|
12
|
+
}
|
|
13
|
+
const server = Bun.serve({
|
|
14
|
+
hostname: "127.0.0.1",
|
|
15
|
+
port: 0,
|
|
16
|
+
async fetch(request) {
|
|
17
|
+
const url = new URL(request.url);
|
|
18
|
+
const file = Bun.file(path.join(testDataDir, path.basename(url.pathname)));
|
|
19
|
+
if (!(await file.exists())) {
|
|
20
|
+
return new Response("Not found", { status: 404 });
|
|
21
|
+
}
|
|
22
|
+
return new Response(file, {
|
|
23
|
+
headers: { "Content-Type": "application/rss+xml" },
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const port = assignedPort(server.port);
|
|
28
|
+
console.warn(`Test server listening at http://127.0.0.1:${port.toString()}`);
|
|
29
|
+
afterAll(async () => {
|
|
30
|
+
await server.stop(true);
|
|
12
31
|
});
|
|
13
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
14
32
|
function createUrl(urlPath) {
|
|
15
|
-
return `http://
|
|
33
|
+
return `http://127.0.0.1:${port.toString()}/${urlPath}`;
|
|
16
34
|
}
|
|
17
35
|
function createSources(count) {
|
|
18
36
|
return Array.from({ length: count }, (_, i) => ({
|
|
@@ -20,6 +38,11 @@ function createSources(count) {
|
|
|
20
38
|
url: createUrl(`rss-${(i + 1).toString()}.xml`),
|
|
21
39
|
}));
|
|
22
40
|
}
|
|
41
|
+
function normalizeSnapshotPorts(value) {
|
|
42
|
+
return JSON.stringify(value)
|
|
43
|
+
.replaceAll("127.0.0.1", "localhost")
|
|
44
|
+
.replaceAll(port.toString(), "PORT");
|
|
45
|
+
}
|
|
23
46
|
test("it should fetch an RSS feed without caching", async () => {
|
|
24
47
|
const config = {
|
|
25
48
|
sources: createSources(19),
|
|
@@ -27,9 +50,7 @@ test("it should fetch an RSS feed without caching", async () => {
|
|
|
27
50
|
truncate: 300,
|
|
28
51
|
};
|
|
29
52
|
const result = await run(config);
|
|
30
|
-
|
|
31
|
-
// replace the port number with a fixed value
|
|
32
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
53
|
+
const string = normalizeSnapshotPorts(result);
|
|
33
54
|
expect(string).toMatchSnapshot();
|
|
34
55
|
});
|
|
35
56
|
test("it should fetch several RSS feeds", async () => {
|
|
@@ -39,9 +60,7 @@ test("it should fetch several RSS feeds", async () => {
|
|
|
39
60
|
truncate: 300,
|
|
40
61
|
};
|
|
41
62
|
const result = await run(config);
|
|
42
|
-
|
|
43
|
-
// replace the port number with a fixed value
|
|
44
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
63
|
+
const string = normalizeSnapshotPorts(result);
|
|
45
64
|
expect(string).toMatchSnapshot();
|
|
46
65
|
});
|
|
47
66
|
test("it should fetch an RSS feed with caching", async () => {
|
|
@@ -55,9 +74,7 @@ test("it should fetch an RSS feed with caching", async () => {
|
|
|
55
74
|
},
|
|
56
75
|
};
|
|
57
76
|
const result = await run(config);
|
|
58
|
-
|
|
59
|
-
// replace the port number with a fixed value
|
|
60
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
77
|
+
const string = normalizeSnapshotPorts(result);
|
|
61
78
|
expect(string).toMatchSnapshot();
|
|
62
79
|
});
|
|
63
80
|
// https://sdorra.dev/posts/2024-02-12-vitest-tmpdir
|
package/dist/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.test.ts
CHANGED
|
@@ -1,23 +1,42 @@
|
|
|
1
|
-
import { expect, test } from "bun:test";
|
|
1
|
+
import { afterAll, expect, test } from "bun:test";
|
|
2
2
|
import type { Configuration } from "./types.ts";
|
|
3
3
|
import { run } from "./index.ts";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
5
|
import { mkdtemp } from "node:fs/promises";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import express from "express";
|
|
8
7
|
|
|
9
|
-
const
|
|
10
|
-
|
|
8
|
+
const testDataDir = path.join(import.meta.dir, "testdata");
|
|
9
|
+
function assignedPort(port: number | undefined): number {
|
|
10
|
+
if (port === undefined) {
|
|
11
|
+
throw new Error("Bun did not assign a test server port");
|
|
12
|
+
}
|
|
13
|
+
return port;
|
|
14
|
+
}
|
|
11
15
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
const server = Bun.serve({
|
|
17
|
+
hostname: "127.0.0.1",
|
|
18
|
+
port: 0,
|
|
19
|
+
async fetch(request) {
|
|
20
|
+
const url = new URL(request.url);
|
|
21
|
+
const file = Bun.file(path.join(testDataDir, path.basename(url.pathname)));
|
|
22
|
+
if (!(await file.exists())) {
|
|
23
|
+
return new Response("Not found", { status: 404 });
|
|
24
|
+
}
|
|
25
|
+
return new Response(file, {
|
|
26
|
+
headers: { "Content-Type": "application/rss+xml" },
|
|
27
|
+
});
|
|
28
|
+
},
|
|
15
29
|
});
|
|
30
|
+
const port = assignedPort(server.port);
|
|
31
|
+
|
|
32
|
+
console.warn(`Test server listening at http://127.0.0.1:${port.toString()}`);
|
|
16
33
|
|
|
17
|
-
|
|
34
|
+
afterAll(async () => {
|
|
35
|
+
await server.stop(true);
|
|
36
|
+
});
|
|
18
37
|
|
|
19
38
|
function createUrl(urlPath: string): string {
|
|
20
|
-
return `http://
|
|
39
|
+
return `http://127.0.0.1:${port.toString()}/${urlPath}`;
|
|
21
40
|
}
|
|
22
41
|
|
|
23
42
|
function createSources(count: number): Configuration["sources"] {
|
|
@@ -27,6 +46,12 @@ function createSources(count: number): Configuration["sources"] {
|
|
|
27
46
|
}));
|
|
28
47
|
}
|
|
29
48
|
|
|
49
|
+
function normalizeSnapshotPorts(value: unknown): string {
|
|
50
|
+
return JSON.stringify(value)
|
|
51
|
+
.replaceAll("127.0.0.1", "localhost")
|
|
52
|
+
.replaceAll(port.toString(), "PORT");
|
|
53
|
+
}
|
|
54
|
+
|
|
30
55
|
test("it should fetch an RSS feed without caching", async () => {
|
|
31
56
|
const config: Configuration = {
|
|
32
57
|
sources: createSources(19),
|
|
@@ -35,9 +60,7 @@ test("it should fetch an RSS feed without caching", async () => {
|
|
|
35
60
|
};
|
|
36
61
|
|
|
37
62
|
const result = await run(config);
|
|
38
|
-
|
|
39
|
-
// replace the port number with a fixed value
|
|
40
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
63
|
+
const string = normalizeSnapshotPorts(result);
|
|
41
64
|
expect(string).toMatchSnapshot();
|
|
42
65
|
});
|
|
43
66
|
|
|
@@ -49,9 +72,7 @@ test("it should fetch several RSS feeds", async () => {
|
|
|
49
72
|
};
|
|
50
73
|
|
|
51
74
|
const result = await run(config);
|
|
52
|
-
|
|
53
|
-
// replace the port number with a fixed value
|
|
54
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
75
|
+
const string = normalizeSnapshotPorts(result);
|
|
55
76
|
expect(string).toMatchSnapshot();
|
|
56
77
|
});
|
|
57
78
|
|
|
@@ -67,9 +88,7 @@ test("it should fetch an RSS feed with caching", async () => {
|
|
|
67
88
|
};
|
|
68
89
|
|
|
69
90
|
const result = await run(config);
|
|
70
|
-
|
|
71
|
-
// replace the port number with a fixed value
|
|
72
|
-
string = string.replaceAll(port.toString(), "PORT");
|
|
91
|
+
const string = normalizeSnapshotPorts(result);
|
|
73
92
|
expect(string).toMatchSnapshot();
|
|
74
93
|
});
|
|
75
94
|
|