Skip to content

Commit 16ad27d

Browse files
Upgraded bun & node on ci
1 parent ac27b8b commit 16ad27d

6 files changed

Lines changed: 74 additions & 66 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Git checkout
18-
uses: actions/checkout@v3
18+
uses: actions/checkout@v4
1919
with:
2020
fetch-depth: 0
2121

2222
- name: Setup Node.js
23-
uses: actions/setup-node@v3
23+
uses: actions/setup-node@v4
2424
with:
25-
node-version: "20"
25+
node-version: "24"
2626

2727
- name: Cache node_modules
28-
uses: actions/cache@v3
28+
uses: actions/cache@v4
2929
with:
3030
path: |
3131
~/.npm
3232
~/.nvm
3333
~/work/react-assert/react-assert/node_modules
3434
~/work/react-assert/react-assert/package-lock.json
35-
key: ${{ runner.os }}-node_modules-cache-v3-${{ hashFiles('package.json') }}
35+
key: ${{ runner.os }}-node_modules-cache-v4-${{ hashFiles('package.json') }}
3636
restore-keys: |
37-
${{ runner.os }}-node_modules-cache-v3-
37+
${{ runner.os }}-node_modules-cache-v4-
3838
3939
- name: Extract Tag Name
4040
run: echo "TAG_NAME=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV

.github/workflows/ci_bun.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: Git checkout
16-
uses: actions/checkout@v3
16+
uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 0
1919

2020
- name: Setup Bun
2121
uses: oven-sh/setup-bun@v1
2222
with:
23-
bun-version: "1.0.1"
23+
bun-version: "1.2.0"
2424

2525
- name: Cache Dependencies
26-
uses: actions/cache@v3
26+
uses: actions/cache@v4
2727
with:
2828
path: |
2929
~/.bun/install/cache
3030
~/work/react-assert/react-assert/bun.lockb
31-
key: ${{ runner.os }}-bun-cache-v4-${{ hashFiles('package.json') }}
31+
key: ${{ runner.os }}-bun-cache-v5-${{ hashFiles('package.json') }}
3232
restore-keys: |
33-
${{ runner.os }}-bun-cache-v4-
33+
${{ runner.os }}-bun-cache-v5-
3434
3535
- name: Run tests
3636
run: |

src/assertComponent.mjs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,29 +32,29 @@ function assertComponentImpl(path, result, expectedElement) {
3232
const pathName = path ? `${path} > ${name}` : Object(name).toString();
3333

3434
if (typeof result === "string" || typeof expectedElement === "string") {
35-
assert.deepEqual(
36-
result,
37-
expectedElement,
38-
`Element doesn't match for ${pathName}` +
39-
`\n\tactual: ${result}` +
40-
`\n\texpected: ${expectedElement}`
41-
);
35+
if (result !== expectedElement) {
36+
assert.fail(
37+
`Element doesn't match for ${pathName}` +
38+
`\n\tactual: ${result}` +
39+
`\n\texpected: ${expectedElement}`
40+
);
41+
}
4242
return;
4343
}
4444

45-
assert.deepEqual(
46-
result.type,
47-
expectedElement.type,
48-
`Component type doesn't match for ${pathName}` +
49-
`\n\tactual: ${
50-
result.type.displayName ? result.type.displayName : result.type
51-
}` +
52-
`\n\texpected: ${
53-
expectedElement.type.displayName
54-
? expectedElement.type.displayName
55-
: expectedElement.type
56-
}`
57-
);
45+
if (result.type !== expectedElement.type) {
46+
assert.fail(
47+
`Component type doesn't match for ${pathName}` +
48+
`\n\tactual: ${
49+
result.type.displayName ? result.type.displayName : result.type
50+
}` +
51+
`\n\texpected: ${
52+
expectedElement.type.displayName
53+
? expectedElement.type.displayName
54+
: expectedElement.type
55+
}`
56+
);
57+
}
5858

5959
Object.keys(expectedElement.props)
6060
.filter((p) => {
@@ -84,13 +84,13 @@ function assertComponentImpl(path, result, expectedElement) {
8484
);
8585
}
8686
} else {
87-
assert.deepEqual(
88-
children.length,
89-
expectedChildren.length,
90-
`Children count doesn't match for ${pathName}` +
91-
`\n\tactual: ${children.length}` +
92-
`\n\texpected: ${expectedChildren.length}`
93-
);
87+
if (children.length !== expectedChildren.length) {
88+
assert.fail(
89+
`Children count doesn't match for ${pathName}` +
90+
`\n\tactual: ${children.length}` +
91+
`\n\texpected: ${expectedChildren.length}`
92+
);
93+
}
9494

9595
expectedChildren.forEach((expected, i) => {
9696
assertComponentImpl(pathName, children[i], expected);

src/assertComponents.mjs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import assertComponent from "./assertComponent.mjs";
66
* @param { (import('react').ReactElement | string)[] } expectedElements
77
*/
88
function assertComponents(results, ...expectedElements) {
9-
assert.deepEqual(
10-
results.length,
11-
expectedElements.length,
12-
`Components count doesn't match` +
13-
`\n\tactual: ${results.length}` +
14-
`\n\texpected: ${expectedElements.length}`
15-
);
9+
if (results.length !== expectedElements.length) {
10+
assert.fail(
11+
`Components count doesn't match` +
12+
`\n\tactual: ${results.length}` +
13+
`\n\texpected: ${expectedElements.length}`
14+
);
15+
}
1616

1717
expectedElements.forEach((expected, i) => {
1818
assertComponent(results[i], expected);

test/assertComponent.test.mjs

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@ describe("assertComponent.test.mjs", () => {
3333
}
3434

3535
//then
36-
assert.deepEqual(
37-
resError?.message,
38-
"Attribute value doesn't match for p.testArr.0" +
39-
"\n\tactual: test1" +
40-
"\n\texpected: test2"
36+
assert.match(
37+
resError?.message ?? "",
38+
new RegExp(
39+
"Attribute value doesn't match for p\\.testArr\\.0" +
40+
"\n\tactual: test1" +
41+
"\n\texpected: test2"
42+
)
4143
);
4244
});
4345

@@ -62,11 +64,13 @@ describe("assertComponent.test.mjs", () => {
6264
}
6365

6466
//then
65-
assert.deepEqual(
66-
resError?.message,
67-
"Attribute value doesn't match for p.testObj.test" +
68-
"\n\tactual: 1" +
69-
"\n\texpected: 2"
67+
assert.match(
68+
resError?.message ?? "",
69+
new RegExp(
70+
"Attribute value doesn't match for p\\.testObj\\.test" +
71+
"\n\tactual: 1" +
72+
"\n\texpected: 2"
73+
)
7074
);
7175
});
7276

@@ -91,11 +95,13 @@ describe("assertComponent.test.mjs", () => {
9195
}
9296

9397
//then
94-
assert.deepEqual(
95-
resError?.message,
96-
"Attribute value doesn't match for p.testObj.test" +
97-
"\n\tactual: () => 1" +
98-
"\n\texpected: undefined"
98+
assert.match(
99+
resError?.message ?? "",
100+
new RegExp(
101+
"Attribute value doesn't match for p\\.testObj\\.test" +
102+
"\n\tactual: \\(\\) => 1" +
103+
"\n\texpected: undefined"
104+
)
99105
);
100106
});
101107

@@ -118,11 +124,13 @@ describe("assertComponent.test.mjs", () => {
118124
}
119125

120126
//then
121-
assert.deepEqual(
122-
resError?.message,
123-
"Attribute value doesn't match for p.disabled" +
124-
"\n\tactual: true" +
125-
"\n\texpected: false"
127+
assert.match(
128+
resError?.message ?? "",
129+
new RegExp(
130+
"Attribute value doesn't match for p\\.disabled" +
131+
"\n\tactual: true" +
132+
"\n\texpected: false"
133+
)
126134
);
127135
});
128136

test/assertComponents.test.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from "react";
22
import TestRenderer from "react-test-renderer";
3+
import assert from "node:assert/strict";
34
import { assertComponents } from "../index.mjs";
45
import { TestComp, TestComp2 } from "./testComponents.mjs";
56

6-
import { strict as assert } from "node:assert";
77
const { describe, it } = await (async () => {
88
// @ts-ignore
99
const module = process.isBun ? "bun:test" : "node:test";

0 commit comments

Comments
 (0)