Skip to content

Commit 69298b5

Browse files
committed
chore: Updated the tests and added more devices to test on.
1 parent 0ca6c23 commit 69298b5

File tree

6 files changed

+427
-84
lines changed

6 files changed

+427
-84
lines changed

.github/workflows/testing.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ jobs:
2828
run: yarn test:create:ssr
2929
- name: Testing in Modern Browsers (BrowserStack)
3030
run: yarn test:bs:modern
31-
- name: Testing in IE11 (BrowserStack)
32-
run: yarn test:bs:ie
31+
- name: Testing in Legacy Browsers (BrowserStack)
32+
run: yarn test:bs:legacy

karma.conf.js

Lines changed: 105 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,101 @@
1+
// @see https://www.browserstack.com/automate/capabilities
2+
const customLaunchers = {
3+
modern: {
4+
bs_chrome_latest: {
5+
base: "BrowserStack",
6+
os: "Windows",
7+
os_version: "10",
8+
browser: "Chrome",
9+
browser_version: "latest",
10+
},
11+
bs_firefox_latest: {
12+
base: "BrowserStack",
13+
os: "Windows",
14+
os_version: "10",
15+
browser: "Firefox",
16+
browser_version: "latest",
17+
},
18+
bs_edge_latest: {
19+
base: "BrowserStack",
20+
os: "Windows",
21+
os_version: "10",
22+
browser: "Edge",
23+
browser_version: "latest",
24+
},
25+
bs_opera_latest: {
26+
base: "BrowserStack",
27+
os: "Windows",
28+
os_version: "10",
29+
browser: "Opera",
30+
browser_version: "latest",
31+
},
32+
// Safari 13 is very important to be listed here, as while it does have an RO implementation,
33+
// it does not support different box sizes, only content-box.
34+
bs_safari_13: {
35+
base: "BrowserStack",
36+
os: "OS X",
37+
os_version: "Catalina",
38+
browser: "Safari",
39+
browser_version: "13.0",
40+
},
41+
bs_ios_14: {
42+
base: "BrowserStack",
43+
device: "iPhone 11",
44+
os: "ios",
45+
os_version: "14",
46+
},
47+
bs_samsung: {
48+
base: "BrowserStack",
49+
device: "Samsung Galaxy Note 10",
50+
os: "Android",
51+
os_version: "9.0",
52+
},
53+
},
54+
legacy: {
55+
bs_ios_11: {
56+
base: "BrowserStack",
57+
device: "iPhone X",
58+
os: "ios",
59+
os_version: "11",
60+
},
61+
bs_ie_11: {
62+
base: "BrowserStack",
63+
os: "Windows",
64+
os_version: "10",
65+
browser: "IE",
66+
browser_version: "11.0",
67+
},
68+
},
69+
};
70+
171
module.exports = function (karmaConfig) {
2-
const { useBrowserStack, runIeTests } = karmaConfig;
3-
const { BS_USERNAME, BS_ACCESS_KEY } = process.env;
72+
const { BS_USERNAME, BS_ACCESS_KEY, KARMA_BROWSERS } = process.env;
73+
74+
const browsers =
75+
KARMA_BROWSERS === "modern"
76+
? Object.keys(customLaunchers.modern)
77+
: KARMA_BROWSERS === "legacy"
78+
? Object.keys(customLaunchers.legacy)
79+
: KARMA_BROWSERS
80+
? KARMA_BROWSERS.split(",").map((val) => val.trim())
81+
: ["ChromeHeadless"];
82+
83+
const useBrowserStack = browsers[0].startsWith("bs_");
84+
85+
const polyfilledRun = browsers.reduce(
86+
(carry, browser) =>
87+
carry || Object.keys(customLaunchers.legacy).includes(browser),
88+
false
89+
);
490

591
let testFilePattern = "tests/*.tsx";
6-
// const testFilePattern = "tests/basic.tsx";
7-
// const testFilePattern = "tests/testing-lib.tsx";
92+
// let testFilePattern = "tests/basic.tsx";
93+
// let testFilePattern = "tests/testing-lib.tsx";
894

995
let transpileExcludePattern = /node_modules/;
1096
let presetEndModules = false;
1197
let transformRuntimeUseESModules = true;
12-
if (useBrowserStack && runIeTests) {
98+
if (polyfilledRun) {
1399
// IE runs a special set of (polyfilled) tests
14100
testFilePattern = "tests/ie/*.tsx";
15101
// Processing everything (including node_modules) for IE11 to make sure 3rd
@@ -32,7 +118,20 @@ module.exports = function (karmaConfig) {
32118
preprocessors: {
33119
[testFilePattern]: ["webpack", "sourcemap"],
34120
},
35-
121+
...(useBrowserStack && {
122+
browserStack: {
123+
username: BS_USERNAME,
124+
accessKey: BS_ACCESS_KEY,
125+
project: "use-resize-observer",
126+
},
127+
}),
128+
// @see https://karma-runner.github.io/5.2/config/files.html
129+
autoWatch: !useBrowserStack,
130+
browsers,
131+
customLaunchers: {
132+
...customLaunchers.modern,
133+
...customLaunchers.legacy,
134+
},
36135
webpack: {
37136
mode: "development",
38137
devtool: "inline-source-map",
@@ -69,61 +168,5 @@ module.exports = function (karmaConfig) {
69168
},
70169
};
71170

72-
if (useBrowserStack) {
73-
Object.assign(config, {
74-
browserStack: {
75-
username: BS_USERNAME,
76-
accessKey: BS_ACCESS_KEY,
77-
project: "use-resize-observer",
78-
},
79-
browsers: ["bs_chrome", "bs_firefox", "bs_safari"],
80-
// @see https://www.browserstack.com/automate/capabilities
81-
customLaunchers: {
82-
bs_chrome: {
83-
base: "BrowserStack",
84-
os: "Windows",
85-
os_version: "10",
86-
browser: "Chrome",
87-
browser_version: "latest",
88-
},
89-
bs_firefox: {
90-
base: "BrowserStack",
91-
os: "Windows",
92-
os_version: "10",
93-
browser: "Firefox",
94-
browser_version: "latest",
95-
},
96-
bs_safari: {
97-
base: "BrowserStack",
98-
os: "OS X",
99-
os_version: "Catalina",
100-
browser: "Safari",
101-
browser_version: "13.0",
102-
},
103-
},
104-
});
105-
106-
if (runIeTests) {
107-
Object.assign(config, {
108-
browsers: ["bs_ie"],
109-
customLaunchers: {
110-
bs_ie: {
111-
base: "BrowserStack",
112-
os: "Windows",
113-
os_version: "10",
114-
browser: "IE",
115-
browser_version: "11.0",
116-
},
117-
},
118-
});
119-
}
120-
} else {
121-
Object.assign(config, {
122-
browsers: (process.env.KARMA_BROWSERS || "ChromeHeadless").split(","),
123-
// @see https://karma-runner.github.io/5.2/config/files.html
124-
autoWatch: true,
125-
});
126-
}
127-
128171
karmaConfig.set(config);
129172
};

tests/basic.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {
1818
HandlerResolverComponentProps,
1919
} from "./utils";
2020
import awaitNextFrame from "./utils/awaitNextFrame";
21-
import delay from "./utils/delay";
2221

2322
describe("Vanilla tests", () => {
2423
it("should render with undefined sizes at first", async () => {
@@ -42,12 +41,8 @@ describe("Vanilla tests", () => {
4241
});
4342

4443
it("should follow size changes correctly with appropriate render count and without sub-pixels as they're used in CSS", async () => {
45-
const {
46-
setAndAssertSize,
47-
setSize,
48-
assertSize,
49-
assertRenderCount,
50-
} = await render(Observed, { waitForFirstMeasurement: true });
44+
const { setAndAssertSize, setSize, assertSize, assertRenderCount } =
45+
await render(Observed, { waitForFirstMeasurement: true });
5146

5247
// Default render + first measurement
5348
assertRenderCount(2);

0 commit comments

Comments
 (0)