Skip to content

Commit 3471c02

Browse files
authored
Merge pull request #146 from Web3-API/cbrzn/react-wrapper
React Wrapper
2 parents 8c66890 + 5b9cd2d commit 3471c02

45 files changed

Lines changed: 1256 additions & 579 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

demos/simple-storage/dapp/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@
2121
npm-debug.log*
2222
yarn-debug.log*
2323
yarn-error.log*
24+
25+
# Web3API Worker Thread
26+
thread.js

demos/simple-storage/dapp/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
"@testing-library/react": "^9.3.2",
2020
"@testing-library/user-event": "^7.1.2",
2121
"@types/node": "^12.0.0",
22-
"@types/react": "^16.9.0",
23-
"@types/react-dom": "^16.9.0",
2422
"@types/react-lottie": "1.2.5",
2523
"eslint": "^6.6.0",
2624
"typescript": "3.7.2"
@@ -35,6 +33,10 @@
3533
"prestart": "yarn install:web3api",
3634
"install:web3api": "npx web3api-worker-install ./public"
3735
},
36+
"resolutions": {
37+
"@types/react": "^16.9.0",
38+
"@types/react-dom": "^16.9.0"
39+
},
3840
"eslintConfig": {
3941
"root": true,
4042
"extends": "react-app"

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"publish:npm": "lerna publish from-package --no-private --yes --registry https://registry.npmjs.org/ --no-verify-access"
3333
},
3434
"devDependencies": {
35-
"lerna": "3.22.1",
35+
"lerna": "3.22.1",
3636
"rimraf": "3.0.2",
3737
"@typescript-eslint/eslint-plugin": "4.11.1",
3838
"@typescript-eslint/parser": "4.11.1",

packages/cli/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"devDependencies": {
4949
"@types/jest": "26.0.8",
5050
"@types/node": "12.6.9",
51+
"@web3api/test-env-js": "0.0.1-prealpha.5",
5152
"jest": "26.2.2",
5253
"rimraf": "3.0.2",
5354
"ts-jest": "26.1.4",

packages/cli/src/__tests__/e2e/build.spec.ts

Lines changed: 38 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import path from "path";
2-
import { clearStyle, run } from "./utils";
2+
import { clearStyle } from "./utils";
3+
4+
import { runCLI } from "@web3api/test-env-js";
35

46
const HELP = `
57
w3 build [options] [<web3api-manifest>]
@@ -17,83 +19,63 @@ describe("e2e tests for build command", () => {
1719
const projectRoot = path.resolve(__dirname, "../project/");
1820

1921
test("Should show help text", async () => {
20-
const errorHandler = jest.fn();
21-
22-
const { code, output } = await run(
23-
"../../../bin/w3",
24-
["build", "--help"],
25-
projectRoot,
26-
errorHandler
27-
);
22+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
23+
args: ["build", "--help"],
24+
cwd: projectRoot
25+
}, "../../../bin/w3");
2826

2927
expect(code).toEqual(0);
30-
expect(errorHandler).not.toBeCalled();
28+
expect(error).toBe("");
3129
expect(clearStyle(output)).toEqual(HELP);
3230
});
3331

3432
test("Should throw error for invalid params - outputDir", async () => {
35-
const errorHandler = jest.fn();
36-
37-
const { code, output } = await run(
38-
"../../../bin/w3",
39-
["build", "--output-dir"],
40-
projectRoot,
41-
errorHandler
42-
);
33+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
34+
args: ["build", "--output-dir"],
35+
cwd: projectRoot
36+
}, "../../../bin/w3");
4337

4438
expect(code).toEqual(0);
45-
expect(errorHandler).not.toBeCalled();
39+
expect(error).toBe("");
4640
expect(clearStyle(output))
4741
.toEqual(`--output-dir option missing <path> argument
4842
${HELP}`);
4943
});
5044

5145
test("Should throw error for invalid params - testEns", async () => {
52-
const errorHandler = jest.fn();
53-
54-
const { code, output } = await run(
55-
"../../../bin/w3",
56-
["build", "--test-ens"],
57-
projectRoot,
58-
errorHandler
59-
);
46+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
47+
args: ["build", "--test-ens"],
48+
cwd: projectRoot
49+
}, "../../../bin/w3");
6050

6151
expect(code).toEqual(0);
62-
expect(errorHandler).not.toBeCalled();
52+
expect(error).toBe("");
6353
expect(clearStyle(output))
6454
.toEqual(`--test-ens option missing <[address,]domain> argument
6555
${HELP}`);
6656
});
6757

6858
test("Should throw error for invalid params - ipfs", async () => {
69-
const errorHandler = jest.fn();
70-
71-
const { code, output } = await run(
72-
"../../../bin/w3",
73-
["build", "--test-ens", "test.eth"],
74-
projectRoot,
75-
errorHandler
76-
);
59+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
60+
args: ["build", "--test-ens", "test.eth"],
61+
cwd: projectRoot
62+
}, "../../../bin/w3");
7763

7864
expect(code).toEqual(0);
79-
expect(errorHandler).not.toBeCalled();
65+
expect(error).toBe("");
8066
expect(clearStyle(output))
8167
.toEqual(`--test-ens option requires the --ipfs [<node>] option
8268
${HELP}`);
8369
});
8470

8571
test("Should throw error for invalid web3api - invalid route", async () => {
86-
const errorHandler = jest.fn();
87-
88-
const { code, output } = await run(
89-
"../../../bin/w3",
90-
["build", "invalid-web3api-1.yaml"],
91-
projectRoot,
92-
errorHandler
93-
);
72+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
73+
args: ["build", "invalid-web3api-1.yaml"],
74+
cwd: projectRoot
75+
}, "../../../bin/w3");
9476

9577
expect(code).toEqual(1);
96-
expect(errorHandler).not.toBeCalled();
78+
expect(error).toBe("");
9779
expect(clearStyle(output)).toContain(`- Compile Web3API
9880
- Load web3api from invalid-web3api-1.yaml
9981
✔ Load web3api from invalid-web3api-1.yaml
@@ -102,34 +84,26 @@ ${HELP}`);
10284
});
10385

10486
test("Should throw error for invalid web3api - invalid field", async () => {
105-
const errorHandler = jest.fn();
106-
107-
const { code, output } = await run(
108-
"../../../bin/w3",
109-
["build", "invalid-web3api-2.yaml"],
110-
projectRoot,
111-
errorHandler
112-
);
87+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
88+
args: ["build", "invalid-web3api-2.yaml"],
89+
cwd: projectRoot
90+
}, "../../../bin/w3");
11391

11492
expect(code).toEqual(1);
115-
expect(errorHandler).not.toBeCalled();
93+
expect(error).toBe("");
11694
expect(clearStyle(output)).toContain(`- Compile Web3API
11795
- Load web3api from invalid-web3api-2.yaml
11896
✖ Failed to load web3api from invalid-web3api-2.yaml: Field wrong_mutation is not accepted in the schema. Please check the accepted fields here:`);
11997
});
12098

12199
test("Successfully build the project", async () => {
122-
const errorHandler = jest.fn();
123-
124-
const { code, output } = await run(
125-
"../../../bin/w3",
126-
["build"],
127-
projectRoot,
128-
errorHandler
129-
);
100+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
101+
args: ["build"],
102+
cwd: projectRoot
103+
}, "../../../bin/w3");
130104

131105
expect(code).toEqual(0);
132-
expect(errorHandler).not.toBeCalled();
106+
expect(error).toBe("");
133107
expect(clearStyle(output)).toEqual(`- Compile Web3API
134108
- Load web3api from web3api.yaml
135109
✔ Load web3api from web3api.yaml

packages/cli/src/__tests__/e2e/codegen.spec.ts

Lines changed: 33 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import path from "path";
22
import { defaultGenerationFile, defaultManifest } from "../../commands/codegen";
3-
import { clearStyle, run } from "./utils";
3+
import { clearStyle } from "./utils";
4+
5+
import { runCLI } from "@web3api/test-env-js";
46

57
const HELP = `
68
w3 codegen [<generation-file>] [options]
@@ -23,105 +25,81 @@ describe("e2e tests for codegen command", () => {
2325
const projectRoot = path.resolve(__dirname, "../project/");
2426

2527
test("Should show help text", async () => {
26-
const errorHandler = jest.fn();
27-
28-
const { code, output } = await run(
29-
"../../../bin/w3",
30-
["codegen", "--help"],
31-
projectRoot,
32-
errorHandler
33-
);
28+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
29+
args: ["codegen", "--help"],
30+
cwd: projectRoot
31+
}, "../../../bin/w3");
3432

3533
expect(code).toEqual(0);
36-
expect(errorHandler).not.toBeCalled();
34+
expect(error).toBe("");
3735
expect(clearStyle(output)).toEqual(HELP);
3836
});
3937

4038
test("Should throw error for invalid params - outputDir", async () => {
41-
const errorHandler = jest.fn();
42-
43-
const { code, output } = await run(
44-
"../../../bin/w3",
45-
["codegen", "--output-dir"],
46-
projectRoot,
47-
errorHandler
48-
);
39+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
40+
args: ["codegen", "--output-dir"],
41+
cwd: projectRoot
42+
}, "../../../bin/w3");
4943

5044
expect(code).toEqual(0);
51-
expect(errorHandler).not.toBeCalled();
45+
expect(error).toBe("");
5246
expect(clearStyle(output))
5347
.toEqual(`--output-dir option missing <path> argument
5448
${HELP}`);
5549
});
5650

5751
test("Should throw error for invalid params - ens", async () => {
58-
const errorHandler = jest.fn();
59-
60-
const { code, output } = await run(
61-
"../../../bin/w3",
62-
["codegen", "--ens"],
63-
projectRoot,
64-
errorHandler
65-
);
52+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
53+
args: ["codegen", "--ens"],
54+
cwd: projectRoot
55+
}, "../../../bin/w3");
6656

6757
expect(code).toEqual(0);
68-
expect(errorHandler).not.toBeCalled();
58+
expect(error).toBe("");
6959
expect(clearStyle(output))
7060
.toEqual(`--ens option missing <[address,]domain> argument
7161
${HELP}`);
7262
});
7363

7464
test("Should throw error for invalid generation file - wrong file", async () => {
75-
const errorHandler = jest.fn();
76-
77-
const { code, output } = await run(
78-
"../../../bin/w3",
79-
["codegen", `web3api-invalid.gen.js`],
80-
projectRoot,
81-
errorHandler
82-
);
65+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
66+
args: ["codegen", `web3api-invalid.gen.js`],
67+
cwd: projectRoot
68+
}, "../../../bin/w3");
8369

8470
expect(code).toEqual(1);
85-
expect(errorHandler).not.toBeCalled();
71+
expect(error).toBe("");
8672
expect(clearStyle(output)).toContain(`- Generate types
8773
- Load web3api from web3api.yaml
8874
✔ Load web3api from web3api.yaml
8975
✖ Failed to generate types: Cannot find module '${projectRoot}/web3api-invalid.gen.js'`);
9076
});
9177

9278
test("Should throw error for invalid generation file - no run() method", async () => {
93-
const errorHandler = jest.fn();
94-
95-
const { code, output } = await run(
96-
"../../../bin/w3",
97-
["codegen", `web3api-norun.gen.js`],
98-
projectRoot,
99-
errorHandler
100-
);
79+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
80+
args: ["codegen", `web3api-norun.gen.js`],
81+
cwd: projectRoot
82+
}, "../../../bin/w3");
10183

10284
expect(code).toEqual(1);
103-
expect(errorHandler).not.toBeCalled();
85+
expect(error).toBe("");
10486
expect(clearStyle(output)).toContain(`- Generate types
10587
- Load web3api from web3api.yaml
10688
✔ Load web3api from web3api.yaml
10789
✖ Failed to generate types: The generation file provided doesn't have the 'run' method.`);
10890
});
10991

11092
test("Should successfully generate types", async () => {
111-
const errorHandler = jest.fn();
112-
11393
const rimraf = require("rimraf");
11494
rimraf.sync(`${projectRoot}/types`);
11595

116-
const { code, output } = await run(
117-
"../../../bin/w3",
118-
["codegen"],
119-
projectRoot,
120-
errorHandler
121-
);
96+
const { exitCode: code, stdout: output, stderr: error } = await runCLI({
97+
args: ["codegen"],
98+
cwd: projectRoot
99+
}, "../../../bin/w3");
122100

123101
expect(code).toEqual(0);
124-
expect(errorHandler).not.toBeCalled();
102+
expect(error).toBe("");
125103
expect(clearStyle(output)).toEqual(`- Generate types
126104
- Load web3api from web3api.yaml
127105
✔ Load web3api from web3api.yaml

0 commit comments

Comments
 (0)