mirror of
https://github.com/fluencelabs/examples
synced 2025-06-24 15:21:32 +00:00
Integration tests for all JS-related projects (#97)
This commit is contained in:
8
quickstart/1-browser-to-browser/.prettierrc.js
Normal file
8
quickstart/1-browser-to-browser/.prettierrc.js
Normal file
@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
semi: true,
|
||||
trailingComma: 'all',
|
||||
singleQuote: true,
|
||||
printWidth: 120,
|
||||
tabWidth: 4,
|
||||
useTabs: false,
|
||||
};
|
8
quickstart/1-browser-to-browser/jest.config.js
Normal file
8
quickstart/1-browser-to-browser/jest.config.js
Normal file
@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
preset: 'jest-puppeteer',
|
||||
testMatch: ['**/?(*.)+(spec|test).[t]s'],
|
||||
testPathIgnorePatterns: ['/node_modules/', 'dist'],
|
||||
transform: {
|
||||
'^.+\\.ts?$': 'ts-jest',
|
||||
},
|
||||
};
|
83897
quickstart/1-browser-to-browser/package-lock.json
generated
83897
quickstart/1-browser-to-browser/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,54 +1,65 @@
|
||||
{
|
||||
"name": "getting-started-browser",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "^0.19.1",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.13",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"@testing-library/user-event": "^12.8.3",
|
||||
"@types/jest": "^26.0.24",
|
||||
"@types/node": "^12.20.16",
|
||||
"@types/react": "^17.0.14",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "4.0.3",
|
||||
"typescript": "^4.3.5",
|
||||
"web-vitals": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "copy-avm-public public",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/_aqua",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.6.1-278",
|
||||
"@fluencelabs/aqua-lib": "^0.4.0",
|
||||
"chokidar-cli": "^2.1.0",
|
||||
"node-sass": "^6.0.1"
|
||||
}
|
||||
"name": "getting-started-browser",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "0.19.2",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.13",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"@testing-library/user-event": "^12.8.3",
|
||||
"@types/jest": "^27.4.0",
|
||||
"@types/node": "^12.20.16",
|
||||
"@types/react": "^17.0.14",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"@types/serve-handler": "^6.1.1",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "^5.0.0",
|
||||
"typescript": "^4.3.5",
|
||||
"web-vitals": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "copy-avm-public public",
|
||||
"prestart": "npm run compile-aqua",
|
||||
"prebuild": "npm run compile-aqua",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "jest --config=jest.config.js",
|
||||
"_test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/_aqua",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all",
|
||||
"not ie 11",
|
||||
"not android 4.4.3-4.4.4"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.6.0-275",
|
||||
"@fluencelabs/aqua-lib": "^0.4.0",
|
||||
"@types/jest-environment-puppeteer": "^4.4.1",
|
||||
"@types/puppeteer": "^5.4.4",
|
||||
"chokidar-cli": "^2.1.0",
|
||||
"jest-puppeteer": "^6.0.2",
|
||||
"node-sass": "^6.0.1",
|
||||
"serve": "^13.0.2",
|
||||
"ts-jest": "^27.1.3"
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,9 @@ function App() {
|
||||
<tbody>
|
||||
<tr>
|
||||
<td className="bold">Peer id:</td>
|
||||
<td className="mono">{Fluence.getStatus().peerId!}</td>
|
||||
<td className="mono">
|
||||
<span id="peerId">{Fluence.getStatus().peerId!}</span>
|
||||
</td>
|
||||
<td>
|
||||
<button
|
||||
className="btn-clipboard"
|
||||
@ -68,7 +70,11 @@ function App() {
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="bold">Relay peer id:</td>
|
||||
<td className="mono">{Fluence.getStatus().relayPeerId}</td>
|
||||
<td className="mono">
|
||||
<span id="relayId">
|
||||
{Fluence.getStatus().relayPeerId}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<button
|
||||
className="btn-clipboard"
|
||||
@ -90,6 +96,7 @@ function App() {
|
||||
<div className="row">
|
||||
<label className="label bold">Target peer id</label>
|
||||
<input
|
||||
id="targetPeerId"
|
||||
className="input"
|
||||
type="text"
|
||||
onChange={(e) => setPeerIdInput(e.target.value)}
|
||||
@ -99,6 +106,7 @@ function App() {
|
||||
<div className="row">
|
||||
<label className="label bold">Target relay</label>
|
||||
<input
|
||||
id="targetRelayId"
|
||||
className="input"
|
||||
type="text"
|
||||
onChange={(e) => setRelayPeerIdInput(e.target.value)}
|
||||
@ -132,7 +140,7 @@ function App() {
|
||||
{helloMessage && (
|
||||
<>
|
||||
<h2>Message</h2>
|
||||
<div> {helloMessage} </div>
|
||||
<div id="message"> {helloMessage} </div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
104
quickstart/1-browser-to-browser/src/__test__/test.spec.ts
Normal file
104
quickstart/1-browser-to-browser/src/__test__/test.spec.ts
Normal file
@ -0,0 +1,104 @@
|
||||
import { Page } from 'puppeteer';
|
||||
import handler from 'serve-handler';
|
||||
import http from 'http';
|
||||
import path from 'path';
|
||||
|
||||
const port = 3000;
|
||||
const uri = `http://localhost:${port}/`;
|
||||
const publicPath = path.join(__dirname, '../../build/');
|
||||
|
||||
console.log(publicPath);
|
||||
|
||||
const server = http.createServer((request, response) => {
|
||||
return handler(request, response, {
|
||||
public: publicPath,
|
||||
});
|
||||
});
|
||||
|
||||
const startServer = async () => {
|
||||
return new Promise((resolve: any) => {
|
||||
server.listen(port, resolve);
|
||||
});
|
||||
};
|
||||
|
||||
const stopServer = async () => {
|
||||
return new Promise((resolve: any) => {
|
||||
server.close(resolve);
|
||||
});
|
||||
};
|
||||
|
||||
const peerIdLength = '12D3KooWM2CYSHefG6KPKbYFAgsbPh8p6b8HYHc6VNkge2rPtYv5'.length;
|
||||
|
||||
const loadApp = async (page: Page) => {
|
||||
console.log('opening page...');
|
||||
await page.goto(uri);
|
||||
|
||||
console.log('clicking connect button...');
|
||||
await page.click('.btn');
|
||||
|
||||
console.log('waiting for fluence to connect...');
|
||||
await page.waitForTimeout(1000);
|
||||
|
||||
console.log('waiting for "say hello" button to appear...');
|
||||
await page.waitForSelector('.btn-hello');
|
||||
|
||||
console.log('getting self peer id and relay...');
|
||||
const peerId = await page.$eval('#peerId', (x) => x.textContent);
|
||||
const relayId = await page.$eval('#relayId', (x) => x.textContent);
|
||||
|
||||
expect(peerId?.length).toBe(peerIdLength);
|
||||
expect(relayId?.length).toBe(peerIdLength);
|
||||
|
||||
return {
|
||||
peerId,
|
||||
relayId,
|
||||
};
|
||||
};
|
||||
|
||||
const waitForSelectorAndGetText = async (page: Page, selector: string) => {
|
||||
const page1Message = await page.waitForSelector('#message');
|
||||
return await page1Message?.evaluate((x) => x.textContent?.trim().replace('\n', ''));
|
||||
};
|
||||
|
||||
describe('smoke test', () => {
|
||||
beforeAll(startServer);
|
||||
|
||||
afterAll(stopServer);
|
||||
|
||||
it('should work', async () => {
|
||||
const page1 = await browser.newPage();
|
||||
const page2 = await browser.newPage();
|
||||
|
||||
console.log('=== browser 1 ===');
|
||||
const peerRelay1 = await loadApp(page1);
|
||||
|
||||
console.log('=== browser 2 ===');
|
||||
const peerRelay2 = await loadApp(page2);
|
||||
|
||||
console.log('=== browser 1 ===');
|
||||
|
||||
console.log('filling form...');
|
||||
await page1.focus('#targetPeerId');
|
||||
await page1.keyboard.type(peerRelay2.peerId!);
|
||||
|
||||
await page1.focus('#targetRelayId');
|
||||
await page1.keyboard.type(peerRelay2.relayId!);
|
||||
|
||||
console.log('clicking "say hello"...');
|
||||
await page1.click('.btn-hello');
|
||||
|
||||
console.log('waiting for particle to execute...');
|
||||
await page1.waitForTimeout(1000);
|
||||
|
||||
console.log('=== finale ===');
|
||||
|
||||
console.log('getting message from page1...');
|
||||
const page1Message = await waitForSelectorAndGetText(page1, '#message');
|
||||
|
||||
console.log('getting message from page2...');
|
||||
const page2Message = await waitForSelectorAndGetText(page2, '#message');
|
||||
|
||||
expect(page1Message).toBe('Hello back to you, ' + peerRelay1.peerId);
|
||||
expect(page2Message).toBe('Hello from: ' + peerRelay1.peerId);
|
||||
}, 15000);
|
||||
});
|
@ -16,7 +16,7 @@
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"isolatedModules": false,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
|
8
quickstart/3-browser-to-service/.prettierrc.js
Normal file
8
quickstart/3-browser-to-service/.prettierrc.js
Normal file
@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
semi: true,
|
||||
trailingComma: 'all',
|
||||
singleQuote: true,
|
||||
printWidth: 120,
|
||||
tabWidth: 4,
|
||||
useTabs: false,
|
||||
};
|
8
quickstart/3-browser-to-service/jest.config.js
Normal file
8
quickstart/3-browser-to-service/jest.config.js
Normal file
@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
preset: 'jest-puppeteer',
|
||||
testMatch: ['**/?(*.)+(spec|test).[t]s'],
|
||||
testPathIgnorePatterns: ['/node_modules/', 'dist'],
|
||||
transform: {
|
||||
'^.+\\.ts?$': 'ts-jest',
|
||||
},
|
||||
};
|
83949
quickstart/3-browser-to-service/package-lock.json
generated
83949
quickstart/3-browser-to-service/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,54 +1,65 @@
|
||||
{
|
||||
"name": "getting-started-browser",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "^0.19.1",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.13",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"@testing-library/user-event": "^12.8.3",
|
||||
"@types/jest": "^26.0.24",
|
||||
"@types/node": "^12.20.16",
|
||||
"@types/react": "^17.0.14",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "4.0.3",
|
||||
"typescript": "^4.3.5",
|
||||
"web-vitals": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "copy-avm-public public",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/_aqua",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.6.1-278",
|
||||
"@fluencelabs/aqua-lib": "^0.4.0",
|
||||
"chokidar-cli": "^2.1.0",
|
||||
"node-sass": "^6.0.1"
|
||||
}
|
||||
"name": "getting-started-browser",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "0.19.2",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.13",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"@testing-library/user-event": "^12.8.3",
|
||||
"@types/jest": "^27.4.0",
|
||||
"@types/node": "^12.20.16",
|
||||
"@types/react": "^17.0.14",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "^5.0.0",
|
||||
"typescript": "^4.3.5",
|
||||
"web-vitals": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "copy-avm-public public",
|
||||
"prestart": "npm run compile-aqua",
|
||||
"prebuild": "npm run compile-aqua",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "jest --config=jest.config.js",
|
||||
"_test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/_aqua",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all",
|
||||
"not ie 11",
|
||||
"not android 4.4.3-4.4.4"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.6.0-275",
|
||||
"@fluencelabs/aqua-lib": "^0.4.0",
|
||||
"@types/jest-environment-puppeteer": "^4.4.1",
|
||||
"@types/puppeteer": "^5.4.4",
|
||||
"@types/serve-handler": "^6.1.1",
|
||||
"chokidar-cli": "^2.1.0",
|
||||
"jest-puppeteer": "^6.0.2",
|
||||
"node-sass": "^6.0.1",
|
||||
"serve": "^13.0.2",
|
||||
"ts-jest": "^27.1.3"
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,11 @@ function App() {
|
||||
<tbody>
|
||||
<tr>
|
||||
<td className="bold">Peer id:</td>
|
||||
<td className="mono">{Fluence.getStatus().peerId!}</td>
|
||||
<td className="mono">
|
||||
<span id="peerId">
|
||||
{Fluence.getStatus().peerId!}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<button
|
||||
className="btn-clipboard"
|
||||
@ -68,7 +72,11 @@ function App() {
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="bold">Relay peer id:</td>
|
||||
<td className="mono">{Fluence.getStatus().relayPeerId!}</td>
|
||||
<td className="mono">
|
||||
<span id="relayId">
|
||||
{Fluence.getStatus().relayPeerId!}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<button
|
||||
className="btn-clipboard"
|
||||
@ -90,6 +98,7 @@ function App() {
|
||||
<div className="row">
|
||||
<label className="label bold">Target peer id</label>
|
||||
<input
|
||||
id="targetPeerId"
|
||||
className="input"
|
||||
type="text"
|
||||
onChange={(e) => setPeerIdInput(e.target.value)}
|
||||
@ -99,6 +108,7 @@ function App() {
|
||||
<div className="row">
|
||||
<label className="label bold">Target relay</label>
|
||||
<input
|
||||
id="targetRelayId"
|
||||
className="input"
|
||||
type="text"
|
||||
onChange={(e) => setRelayPeerIdInput(e.target.value)}
|
||||
@ -132,7 +142,7 @@ function App() {
|
||||
{helloMessage && (
|
||||
<>
|
||||
<h2>Message</h2>
|
||||
<div> {helloMessage} </div>
|
||||
<div id="message"> {helloMessage} </div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
103
quickstart/3-browser-to-service/src/__test__/test.spec.ts
Normal file
103
quickstart/3-browser-to-service/src/__test__/test.spec.ts
Normal file
@ -0,0 +1,103 @@
|
||||
import { Page } from 'puppeteer';
|
||||
import handler from 'serve-handler';
|
||||
import http from 'http';
|
||||
import path from 'path';
|
||||
|
||||
const port = 3000;
|
||||
const uri = `http://localhost:${port}/`;
|
||||
const publicPath = path.join(__dirname, '../../build/');
|
||||
|
||||
console.log(publicPath);
|
||||
|
||||
const server = http.createServer((request, response) => {
|
||||
return handler(request, response, {
|
||||
public: publicPath,
|
||||
});
|
||||
});
|
||||
|
||||
const startServer = async () => {
|
||||
return new Promise((resolve: any) => {
|
||||
server.listen(port, resolve);
|
||||
});
|
||||
};
|
||||
|
||||
const stopServer = async () => {
|
||||
return new Promise((resolve: any) => {
|
||||
server.close(resolve);
|
||||
});
|
||||
};
|
||||
const peerIdLength = '12D3KooWM2CYSHefG6KPKbYFAgsbPh8p6b8HYHc6VNkge2rPtYv5'.length;
|
||||
|
||||
const loadApp = async (page: Page) => {
|
||||
console.log('opening page...');
|
||||
await page.goto('http://localhost:3000/');
|
||||
|
||||
console.log('clicking connect button...');
|
||||
await page.click('.btn');
|
||||
|
||||
console.log('waiting for fluence to connect...');
|
||||
await page.waitForTimeout(1000);
|
||||
|
||||
console.log('waiting for "say hello" button to appear...');
|
||||
await page.waitForSelector('.btn-hello');
|
||||
|
||||
console.log('getting self peer id and relay...');
|
||||
const peerId = await page.$eval('#peerId', (x) => x.textContent);
|
||||
const relayId = await page.$eval('#relayId', (x) => x.textContent);
|
||||
|
||||
expect(peerId?.length).toBe(peerIdLength);
|
||||
expect(relayId?.length).toBe(peerIdLength);
|
||||
|
||||
return {
|
||||
peerId,
|
||||
relayId,
|
||||
};
|
||||
};
|
||||
|
||||
const waitForSelectorAndGetText = async (page: Page, selector: string) => {
|
||||
const page1Message = await page.waitForSelector('#message');
|
||||
return await page1Message?.evaluate((x) => x.textContent?.trim().replace('\n', ''));
|
||||
};
|
||||
|
||||
describe('smoke test', () => {
|
||||
beforeAll(startServer);
|
||||
|
||||
afterAll(stopServer);
|
||||
|
||||
it('should work', async () => {
|
||||
const page1 = await browser.newPage();
|
||||
const page2 = await browser.newPage();
|
||||
|
||||
console.log('=== browser 1 ===');
|
||||
const peerRelay1 = await loadApp(page1);
|
||||
|
||||
console.log('=== browser 2 ===');
|
||||
const peerRelay2 = await loadApp(page2);
|
||||
|
||||
console.log('=== browser 1 ===');
|
||||
|
||||
console.log('filling form...');
|
||||
await page1.focus('#targetPeerId');
|
||||
await page1.keyboard.type(peerRelay2.peerId!);
|
||||
|
||||
await page1.focus('#targetRelayId');
|
||||
await page1.keyboard.type(peerRelay2.relayId!);
|
||||
|
||||
console.log('clicking "say hello"...');
|
||||
await page1.click('.btn-hello');
|
||||
|
||||
console.log('waiting for particle to execute...');
|
||||
await page1.waitForTimeout(1000);
|
||||
|
||||
console.log('=== finale ===');
|
||||
|
||||
console.log('getting message from page1...');
|
||||
const page1Message = await waitForSelectorAndGetText(page1, '#message');
|
||||
|
||||
console.log('getting message from page2...');
|
||||
const page2Message = await waitForSelectorAndGetText(page2, '#message');
|
||||
|
||||
expect(page1Message).toBe('Hello back to you, ' + peerRelay1.peerId);
|
||||
expect(page2Message).toBe('Hello from: ' + peerRelay1.peerId);
|
||||
}, 15000);
|
||||
});
|
@ -16,7 +16,7 @@
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"isolatedModules": false,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
|
Reference in New Issue
Block a user