Skip to content

Commit 14399d0

Browse files
Merge pull request #358 from preactjs/test-improve
2 parents 2fce115 + df7ed3b commit 14399d0

File tree

6 files changed

+81
-32
lines changed

6 files changed

+81
-32
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"archiver": "^5.0.2",
5656
"babel-loader": "^8.1.0",
5757
"babel-plugin-helpers": "^0.1.1",
58-
"babel-plugin-transform-jsx-to-htm": "^2.0.0",
58+
"babel-plugin-transform-jsx-to-htm": "^2.2.0",
5959
"babel-plugin-transform-rename-properties": "^0.1.0",
6060
"concurrently": "^5.3.0",
6161
"cpy-cli": "^3.1.1",

src/view/components/profiler/flamegraph/modes/FlamegraphLayout.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ export function FlamegraphLayout({
4848
let text: any = "";
4949
if (pos.commitParent || pos.weight === -1) {
5050
text = (
51-
<span data-testid="node-name">
52-
{node.name}
51+
<>
52+
<span data-testid="node-name">{node.name}</span>
5353
{filterHoc && node.hocs ? (
5454
<HocLabels hocs={node.hocs} nodeId={node.id} canMark={false} />
5555
) : (
5656
""
5757
)}
58-
</span>
58+
</>
5959
);
6060
} else {
6161
const self = formatTime(commit.selfDurations.get(node.id)!);
Lines changed: 64 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { newTestPage, getHooks, waitForSelector } from "../../test-utils";
22
import { expect } from "chai";
33
import { clickNestedText, clickSelector } from "pentf/browser_utils";
4+
import { assertEventually } from "pentf/assert_utils";
45

56
export const description = "Show custom hook name";
67

@@ -24,47 +25,93 @@ export async function run(config: any) {
2425
// Callback (Mixed)
2526
await clickNestedText(devtools, /CounterCallback$/);
2627
await waitForSelector(devtools, hooksPanel);
27-
expect(await getHooks(devtools)).to.deep.equal([
28-
["useState counterState", "0"],
29-
["useCallback", "ƒ ()"],
30-
]);
28+
await assertEventually(
29+
async () => {
30+
expect(await getHooks(devtools)).to.deep.equal([
31+
["useState counterState", "0"],
32+
["useCallback", "ƒ ()"],
33+
]);
34+
},
35+
{ crashOnError: false },
36+
);
3137

3238
// Reducer
3339
await clickNestedText(devtools, /ReducerComponent$/);
3440
await waitForSelector(devtools, hooksPanel);
35-
expect(await getHooks(devtools)).to.deep.equal([
36-
["useReducer customReducer", '"foo"'],
37-
]);
41+
await assertEventually(
42+
async () => {
43+
expect(await getHooks(devtools)).to.deep.equal([
44+
["useReducer customReducer", '"foo"'],
45+
]);
46+
},
47+
{ crashOnError: false },
48+
);
3849

3950
// Ref
4051
await clickNestedText(devtools, /RefComponent$/);
4152
await waitForSelector(devtools, hooksPanel);
42-
expect(await getHooks(devtools)).to.deep.equal([["useRef customRef", "0"]]);
53+
await assertEventually(
54+
async () => {
55+
expect(await getHooks(devtools)).to.deep.equal([
56+
["useRef customRef", "0"],
57+
]);
58+
},
59+
{ crashOnError: false },
60+
);
4361

4462
// useMemo
4563
await clickNestedText(devtools, /MemoComponent$/);
4664
await waitForSelector(devtools, hooksPanel);
47-
expect(await getHooks(devtools)).to.deep.equal([["useMemo customMemo", "0"]]);
65+
await assertEventually(
66+
async () => {
67+
expect(await getHooks(devtools)).to.deep.equal([
68+
["useMemo customMemo", "0"],
69+
]);
70+
},
71+
{ crashOnError: false },
72+
);
4873

4974
// Multiple (test ordering)
5075
await clickNestedText(devtools, /^Multiple$/);
5176
await waitForSelector(devtools, hooksPanel);
52-
expect(await getHooks(devtools)).to.deep.equal([
53-
["useState foo", "0"],
54-
["useState bar", "0"],
55-
["useState baz", "0"],
56-
]);
77+
await assertEventually(
78+
async () => {
79+
expect(await getHooks(devtools)).to.deep.equal([
80+
["useState foo", "0"],
81+
["useState bar", "0"],
82+
["useState baz", "0"],
83+
]);
84+
},
85+
{ crashOnError: false },
86+
);
5787

5888
// Do nothing for invalid callsites
5989
await clickNestedText(devtools, /CallbackOnly$/);
6090
await waitForSelector(devtools, hooksPanel);
61-
expect(await getHooks(devtools)).to.deep.equal([["useCallback", "ƒ ()"]]);
91+
await assertEventually(
92+
async () => {
93+
expect(await getHooks(devtools)).to.deep.equal([["useCallback", "ƒ ()"]]);
94+
},
95+
{ crashOnError: false },
96+
);
6297

6398
await clickNestedText(devtools, /LayoutEffect$/);
6499
await waitForSelector(devtools, hooksPanel);
65-
expect(await getHooks(devtools)).to.deep.equal([["useLayoutEffect", "ƒ ()"]]);
100+
await assertEventually(
101+
async () => {
102+
expect(await getHooks(devtools)).to.deep.equal([
103+
["useLayoutEffect", "ƒ ()"],
104+
]);
105+
},
106+
{ crashOnError: false },
107+
);
66108

67109
await clickNestedText(devtools, /^Effect$/);
68110
await waitForSelector(devtools, hooksPanel);
69-
expect(await getHooks(devtools)).to.deep.equal([["useEffect", "ƒ ()"]]);
111+
await assertEventually(
112+
async () => {
113+
expect(await getHooks(devtools)).to.deep.equal([["useEffect", "ƒ ()"]]);
114+
},
115+
{ crashOnError: false },
116+
);
70117
}

test-e2e/tests/profiler/flamegraph/memo-sibling.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,14 @@ export async function run(config: any) {
4141
await clickRecordButton(devtools);
4242

4343
const nodes = await getFlameNodes(devtools);
44-
expect(nodes).to.deep.equal([
45-
{ maximized: true, name: "Fragment", visible: true },
46-
{ maximized: false, name: "Counter", visible: true },
47-
{ maximized: false, name: "Value1", visible: true },
48-
{ maximized: false, name: "Value2", visible: true },
49-
]);
44+
expect(nodes.sort((a, b) => a.name.localeCompare(b.name))).to.deep.equal(
45+
[
46+
{ maximized: true, name: "Fragment", visible: true },
47+
{ maximized: false, name: "Counter", visible: true },
48+
{ maximized: false, name: "Value1", visible: true },
49+
{ maximized: false, name: "Value2", visible: true },
50+
].sort((a, b) => a.name.localeCompare(b.name)),
51+
);
5052

5153
const memoSize = await getSize(
5254
devtools,

test-e2e/tests/profiler/flamegraph/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export async function getFlameNodes(page: Page) {
55
return els.map(el => {
66
return {
77
maximized: el.hasAttribute("data-maximized"),
8-
name: el.querySelector('[data-testid="node-name"]')!.textContent,
8+
name: el.querySelector('[data-testid="node-name"]')!.textContent || "",
99
visible: el.hasAttribute("data-visible"),
1010
};
1111
});

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,10 +1761,10 @@ babel-plugin-helpers@^0.1.1:
17611761
resolved "https://registry.yarnpkg.com/babel-plugin-helpers/-/babel-plugin-helpers-0.1.1.tgz#2a9cce1bc588bd73861ca435fe2c851ed0ebd17d"
17621762
integrity sha512-1Pg2Sg9e2Y2KwUxhLp/13TgZlbTh8sCJqno7vgMZJwQcRwuOWVMskyACfOdRheuVI9+MnG2nBfQPm9dxk+QpbQ==
17631763

1764-
babel-plugin-transform-jsx-to-htm@^2.0.0:
1765-
version "2.0.0"
1766-
resolved "https://registry.yarnpkg.com/babel-plugin-transform-jsx-to-htm/-/babel-plugin-transform-jsx-to-htm-2.0.0.tgz#ab04caf8752a67272c06d6f9786721c105417640"
1767-
integrity sha512-MuU/RfaTh2i1ar5iiOoce6F263jIHsXjN7SLrm9G80PKHOFZJSfq2F5hAHduVK4dMwA6xeSKK541Ho3LGb5lIg==
1764+
babel-plugin-transform-jsx-to-htm@^2.2.0:
1765+
version "2.2.0"
1766+
resolved "https://registry.yarnpkg.com/babel-plugin-transform-jsx-to-htm/-/babel-plugin-transform-jsx-to-htm-2.2.0.tgz#760023cd60a531f439a91df3ba99db831425a1ef"
1767+
integrity sha512-o98JbDlwdF3z03h+wdO5Ft4XTsJFONOM+XAFF9EH0EK8gYVSIwtp2jXvI7u4esIcQPiVy+ZHyZVy76AgnxnGbQ==
17681768
dependencies:
17691769
"@babel/plugin-syntax-jsx" "^7.2.0"
17701770
htm "^3.0.0"

0 commit comments

Comments
 (0)