Skip to content

Commit 5c43f8b

Browse files
committed
test: update test and add workflow
test
1 parent 29a11f0 commit 5c43f8b

File tree

2 files changed

+121
-10
lines changed

2 files changed

+121
-10
lines changed

.github/workflows/test.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: test
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "*.ts"
7+
push:
8+
tags-ignore:
9+
- "**"
10+
paths:
11+
- "*.ts"
12+
13+
jobs:
14+
test:
15+
if: "! contains(github.event.head_commit.message, '[skip ci]') && ! contains(github.event.head_commit.message, '[ci skip]')"
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v3
19+
20+
- uses: asdf-vm/actions/install@v2
21+
22+
- run: deno task build

src/unityChangeset.test.ts

Lines changed: 99 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,122 @@
1+
// deno-fmt-ignore-file
12
import {
2-
assert,
33
assertEquals,
4-
} from "https://deno.land/std@0.114.0/testing/asserts.ts";
5-
import { UnityChangeset } from "./unityChangeset.ts";
4+
assertNotEquals,
5+
assertRejects,
6+
} from "https://deno.land/std@0.181.0/testing/asserts.ts";
67
import {
8+
filterChangesets,
79
getUnityChangeset,
10+
groupChangesets,
11+
GroupMode,
812
scrapeArchivedChangesets,
913
scrapeBetaChangesets,
14+
searchChangesets,
15+
SearchMode,
16+
UnityChangeset,
1017
} from "./index.ts";
1118

1219
Deno.test("UnityChangeset.toNumber min", () => {
13-
assertEquals(201803000000, UnityChangeset.toNumber("2018.3", false));
20+
assertEquals(UnityChangeset.toNumber("2018.3", false), 201803000000);
1421
});
1522

1623
Deno.test("UnityChangeset.toNumber max", () => {
17-
assertEquals(201803992599, UnityChangeset.toNumber("2018.3", true));
24+
assertEquals(UnityChangeset.toNumber("2018.3", true), 201803992599);
1825
});
1926

20-
Deno.test("getUnityChangeset", async () => {
21-
const changeset = await getUnityChangeset("2018.3.0f2");
22-
assertEquals("2018.3.0f2\t6e9a27477296", changeset.toString());
27+
// getUnityChangeset
28+
[
29+
{ version: "2018.3.0f1", expected: "f023c421e164" },
30+
{ version: "2018.3.0f2", expected: "6e9a27477296" },
31+
{ version: "2018.3.0f3", expected: undefined },
32+
{ version: "2019.1.0a9", expected: "0acd256790e8" },
33+
{ version: "2019.1.0b1", expected: "83b3ba1f99df" },
34+
].forEach((testcase) => {
35+
Deno.test(`getUnityChangeset (${testcase.version})`, async () => {
36+
if (testcase.expected) {
37+
const changeset = (await getUnityChangeset(testcase.version)).changeset;
38+
assertEquals(changeset, testcase.expected);
39+
}
40+
else
41+
{
42+
await assertRejects(() => getUnityChangeset(testcase.version));
43+
}
44+
})
2345
});
2446

2547
Deno.test("scrapeArchivedChangesets", async () => {
2648
const changesets = await scrapeArchivedChangesets();
27-
assert(0 < changesets.length);
49+
assertNotEquals(changesets.length, 0);
2850
});
2951

3052
Deno.test("scrapeBetaChangesets", async () => {
3153
const changesets = await scrapeBetaChangesets();
32-
assert(0 < changesets.length);
54+
console.log(changesets.map((c) => c.version));
55+
assertNotEquals(changesets.length, 0);
56+
});
57+
58+
// searchChangesets
59+
[
60+
{ searchMode: SearchMode.All },
61+
{ searchMode: SearchMode.Archived },
62+
{ searchMode: SearchMode.PreRelease },
63+
].forEach((testcase) => {
64+
Deno.test(`filterChangesets(${JSON.stringify(testcase.searchMode)})`, async () => {
65+
const changesets = await searchChangesets(SearchMode.All);
66+
assertNotEquals(changesets.length, 0);
67+
});
68+
});
69+
70+
const changesetsForTest = [
71+
new UnityChangeset("2018.2.0f1", "000000000000"),
72+
new UnityChangeset("2018.2.1f1", "000000000000"),
73+
new UnityChangeset("2018.2.2f1", "000000000000"),
74+
new UnityChangeset("2018.3.0f1", "000000000000"),
75+
new UnityChangeset("2018.3.1f1", "000000000000"),
76+
new UnityChangeset("2018.3.2f1", "000000000000"),
77+
new UnityChangeset("2018.4.0f1", "000000000000", true),
78+
new UnityChangeset("2018.4.1f1", "000000000000", true),
79+
new UnityChangeset("2018.4.2f1", "000000000000", true),
80+
new UnityChangeset("2019.1.0a1", "000000000000"),
81+
new UnityChangeset("2019.1.0a2", "000000000000"),
82+
new UnityChangeset("2019.1.0b1", "000000000000"),
83+
new UnityChangeset("2019.1.0b2", "000000000000"),
84+
new UnityChangeset("2019.1.0f1", "000000000000"),
85+
new UnityChangeset("2019.1.0f2", "000000000000"),
86+
new UnityChangeset("2019.1.1f1", "000000000000"),
87+
new UnityChangeset("2019.2.0a1", "000000000000"),
88+
new UnityChangeset("2019.2.0a2", "000000000000"),
89+
new UnityChangeset("2019.2.0b1", "000000000000"),
90+
new UnityChangeset("2019.2.0b2", "000000000000"),
91+
new UnityChangeset("2019.2.0a1", "000000000000"),
92+
new UnityChangeset("2019.2.0a2", "000000000000"),
93+
].sort((a, b) => b.versionNumber - a.versionNumber);
94+
95+
// filterChangesets
96+
[
97+
{ options: { min: "2018.3", max: "2018.4", grep: "", allLifecycles: false, lts: false, }, expected: 6, },
98+
{ options: { min: "2018.3", max: "", grep: "2018", allLifecycles: false, lts: false, }, expected: 6, },
99+
{ options: { min: "", max: "", grep: "", allLifecycles: false, lts: true }, expected: 3, },
100+
{ options: { min: "2019", max: "", grep: "", allLifecycles: true, lts: false, }, expected: 13, },
101+
{ options: { min: "2019", max: "", grep: "b", allLifecycles: true, lts: false, }, expected: 4, },
102+
].forEach((testcase) => {
103+
Deno.test(`filterChangesets(${JSON.stringify(testcase.options)})`, () => {
104+
const changesets = filterChangesets(changesetsForTest, testcase.options);
105+
console.log(changesets.map((c) => `${c.version}`));
106+
assertEquals(changesets.length, testcase.expected);
107+
});
108+
});
109+
110+
// groupChangesets
111+
[
112+
{ groupMode: GroupMode.All, expected: 22 },
113+
{ groupMode: GroupMode.LatestLifecycle, expected: 14 },
114+
{ groupMode: GroupMode.LatestPatch, expected: 5 },
115+
{ groupMode: GroupMode.OldestPatch, expected: 5 },
116+
].forEach((testcase) => {
117+
Deno.test(`groupChangesets(${testcase.groupMode})`, () => {
118+
const changesets = groupChangesets(changesetsForTest, testcase.groupMode);
119+
console.log(changesets.map((c) => `${c.version}`));
120+
assertEquals(changesets.length, testcase.expected);
121+
});
33122
});

0 commit comments

Comments
 (0)