Skip to content
This repository was archived by the owner on Dec 21, 2021. It is now read-only.

Commit 22cee63

Browse files
committed
test: Split realtime/resend browser tests.
1 parent d98ca25 commit 22cee63

File tree

4 files changed

+85
-4
lines changed

4 files changed

+85
-4
lines changed

.github/workflows/test-build.yml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ jobs:
7777
- name: npm run test-exports
7878
run: npm run test-exports
7979

80-
browser:
80+
browser-realtime:
8181
name: Test Browser using Node 14.x
8282
runs-on: ubuntu-latest
8383
needs: build
@@ -96,14 +96,35 @@ jobs:
9696
uses: streamr-dev/streamr-docker-dev-action@v1.0.0-alpha.3
9797
with:
9898
services-to-start: "mysql redis core-api cassandra parity-node0 parity-sidechain-node0 bridge broker-node-no-storage-1 broker-node-no-storage-2 broker-node-storage-1 nginx smtp"
99+
- name: Run Realtime Test
100+
run: npm run test-browser-realtime
99101

102+
browser-resend:
103+
name: Test Browser using Node 14.x
104+
runs-on: ubuntu-latest
105+
needs: build
106+
steps:
107+
- uses: actions/checkout@v2
108+
- uses: actions/setup-node@v2
109+
with:
110+
node-version: "14.x"
111+
- uses: actions/download-artifact@v2
112+
with:
113+
name: build
114+
path: dist
115+
- name: npm ci
116+
run: npm ci
117+
- name: Start Streamr Docker Stack
118+
uses: streamr-dev/streamr-docker-dev-action@v1.0.0-alpha.3
119+
with:
120+
services-to-start: "mysql redis core-api cassandra parity-node0 parity-sidechain-node0 bridge broker-node-no-storage-1 broker-node-no-storage-2 broker-node-storage-1 nginx smtp"
100121
- uses: nick-invision/retry@v2
101-
name: Run Test
122+
name: Run Resend Test
102123
with:
103124
max_attempts: 3
104125
timeout_minutes: 3
105126
retry_on: error
106-
command: npm run test-browser
127+
command: npm run test-browser-resend
107128

108129
benchmarks:
109130
name: Test Benchmark using Node ${{ matrix.node-version }}

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@
5151
"test-memory": "node --gc-global --predictable-gc-schedule node_modules/.bin/jest test/memory",
5252
"test-flakey": "jest --verbose --useStderr --forceExit test/flakey/*",
5353
"test-browser": "node ./test/browser/server.js & node node_modules/nightwatch/bin/nightwatch ./test/browser/browser.js && pkill -f server.js",
54+
"setup-browser": "node ./test/browser/server.js & node node_modules/nightwatch/bin/nightwatch",
55+
"teardown-browser": "pkill -f server.js",
56+
"test-browser-realtime": "npm run setup-browser; node ./test/browser/server.js & node node_modules/nightwatch/bin/nightwatch ./test/browser/realtime.js; ",
57+
"posttest-browser-realtime": "npm run teardown-browser",
58+
"test-browser-resend": "npm run setup-browser; node ./test/browser/server.js & node node_modules/nightwatch/bin/nightwatch ./test/browser/resend.js; npm run teardown-browser",
59+
"posttest-browser-resend": "npm run teardown-browser",
5460
"install-example": "cd examples/webpack && npm ci",
5561
"build-example": "cd examples/webpack && npm run build-with-parent",
5662
"clear-cache": "rm -rf node_modules/.cache; rm -rf .cache; rm -rf dist; rm -rf vendor; jest --clearCache;",

test/browser/realtime.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/* eslint-disable no-undef */
2+
const { v4: uuidv4 } = require('uuid')
3+
4+
describe('StreamrClient Realtime', () => {
5+
const streamName = uuidv4()
6+
7+
before((browser) => {
8+
// optionally forward url env vars as query params
9+
const url = process.env.WEBSOCKET_URL ? `&WEBSOCKET_URL=${encodeURIComponent(process.env.WEBSOCKET_URL)}` : ''
10+
const restUrl = process.env.REST_URL ? `&REST_URL=${encodeURIComponent(process.env.REST_URL)}` : ''
11+
const browserUrl = `http://localhost:8880?streamName=${streamName}${url}${restUrl}`
12+
// eslint-disable-next-line no-console
13+
console.info(browserUrl)
14+
return browser.url(browserUrl)
15+
})
16+
17+
test('Test StreamrClient in Chrome Browser', (browser) => {
18+
browser
19+
.waitForElementVisible('body')
20+
.assert.titleContains('Test StreamrClient in Chrome Browser')
21+
.click('button[id=connect]')
22+
.assert.containsText('#result', 'connected')
23+
.click('button[id=create]')
24+
.assert.containsText('#result', streamName)
25+
.click('button[id=subscribe]')
26+
.assert.containsText('#result', 'subscribed')
27+
.click('button[id=publish]')
28+
.pause(3000)
29+
.verify.containsText('#result', '{"msg":0}')
30+
.verify.containsText('#result', '{"msg":1}')
31+
.verify.containsText('#result', '{"msg":2}')
32+
.verify.containsText('#result', '{"msg":3}')
33+
.verify.containsText('#result', '{"msg":4}')
34+
.verify.containsText('#result', '{"msg":5}')
35+
.verify.containsText('#result', '{"msg":6}')
36+
.verify.containsText('#result', '{"msg":7}')
37+
.verify.containsText('#result', '{"msg":8}')
38+
.verify.containsText('#result', '{"msg":9}')
39+
.assert.containsText('#result', '[{"msg":0},{"msg":1},{"msg":2},{"msg":3},{"msg":4},{"msg":5},{"msg":6},{"msg":7},{"msg":8},{"msg":9}]')
40+
.click('button[id=disconnect]')
41+
.assert.containsText('#result', 'disconnected')
42+
})
43+
44+
after(async (browser) => {
45+
browser.getLog('browser', (logs) => {
46+
logs.forEach((log) => {
47+
// eslint-disable-next-line no-console
48+
const logger = console[String(log.level).toLowerCase()] || console.log
49+
logger('[%s]: ', log.timestamp, log.message)
50+
})
51+
})
52+
return browser.end()
53+
})
54+
})
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable no-undef */
22
const { v4: uuidv4 } = require('uuid')
33

4-
describe('StreamrClient', () => {
4+
describe('StreamrClient Resend', () => {
55
const streamName = uuidv4()
66

77
before((browser) => {

0 commit comments

Comments
 (0)