Skip to content

Commit ad8092b

Browse files
authored
Merge pull request #1 from jsonjoy-com/e2e-testing
E2E testing
2 parents 39971e8 + 11dc5a3 commit ad8092b

File tree

5 files changed

+25
-4
lines changed

5 files changed

+25
-4
lines changed

.github/workflows/pr.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,17 @@ jobs:
4040
- run: yarn lint
4141
- run: yarn prettier:check
4242
- run: yarn typedoc
43+
e2e-rx-rpc:
44+
runs-on: ubuntu-latest
45+
strategy:
46+
matrix:
47+
node-version: [20.x]
48+
steps:
49+
- uses: actions/checkout@v4
50+
- name: Use Node.js ${{ matrix.node-version }}
51+
uses: actions/setup-node@v4
52+
with:
53+
node-version: ${{ matrix.node-version }}
54+
cache: yarn
55+
- run: yarn install --frozen-lockfile
56+
- run: yarn test:e2e

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
- run: yarn prettier:check
2424
- run: yarn lint
2525
- run: yarn test:ci --ci
26+
- run: yarn test:e2e
2627
- run: yarn build
2728
- name: Semantic Release
2829
uses: cycjimmy/semantic-release-action@v4

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"LICENSE",
3838
"lib/"
3939
],
40+
"license": "Apache-2.0",
4041
"scripts": {
4142
"prettier": "prettier --ignore-path .gitignore --write \"src/**/*.{ts,tsx,js,jsx}\"",
4243
"prettier:check": "prettier --ignore-path .gitignore --list-different 'src/**/*.{ts,tsx,js,jsx}'",
@@ -47,6 +48,9 @@
4748
"jest": "node -r ts-node/register ./node_modules/.bin/jest",
4849
"test": "jest --maxWorkers 7",
4950
"test:ci": "yarn jest --maxWorkers 3 --no-cache",
51+
"test:e2e": "node -r ts-node/register/transpile-only src/__tests__/e2e/run.ts",
52+
"test:e2e:jest": "TEST_E2E=1 jest --maxWorkers 1 --no-cache src/__tests__/e2e/",
53+
"demo:e2e:server": "ts-node src/__demos__/server.ts",
5054
"coverage": "yarn test --collectCoverage",
5155
"typedoc": "typedoc",
5256
"build:pages": "rimraf gh-pages && mkdir -p gh-pages && cp -r typedocs/* gh-pages && cp -r coverage gh-pages/coverage",

src/__demos__/server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// npx ts-node src/reactive-rpc/__demos__/server.ts
2+
// curl localhost:9999/rpc -H 'Content-Type: rpc.rx.compact.json' -d '[1,1,"ping"]'
23

34
import {App} from 'uWebSockets.js';
45
import {createCaller} from '../common/rpc/__tests__/sample-api';

src/__tests__/e2e/run.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {Defer} from '../../util/Defer';
44
const startServer = async () => {
55
const started = new Defer<void>();
66
const exitCode = new Defer<number>();
7-
const cp = spawn('yarn', ['demo:reactive-rpc:server'], {
7+
const cp = spawn('yarn', ['demo:e2e:server'], {
88
shell: true,
99
});
1010
process.on('exit', (code) => {
@@ -16,10 +16,11 @@ const startServer = async () => {
1616
process.stderr.write('[server] ' + line);
1717
});
1818
cp.stderr.on('data', (data) => {
19+
const msg = Buffer.isBuffer(data) ? data.toString() : String(data);
1920
// tslint:disable-next-line no-console
20-
console.error('Could not start server');
21+
console.error('Could not start server', msg);
2122
started.reject(data);
22-
process.stderr.write('ERROR: [server] ' + String(data));
23+
process.stderr.write('ERROR: [server] ' + msg);
2324
});
2425
cp.on('close', (code) => {
2526
exitCode.resolve(code || 0);
@@ -34,7 +35,7 @@ const startServer = async () => {
3435

3536
const runTests = async () => {
3637
const exitCode = new Defer<number>();
37-
const cp = spawn('yarn', ['test:reactive-rpc:jest'], {
38+
const cp = spawn('yarn', ['test:e2e:jest'], {
3839
env: {
3940
...process.env,
4041
TEST_E2E: '1',

0 commit comments

Comments
 (0)