@coherentglobal/wasm-runner 0.0.85 → 0.0.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.js CHANGED
@@ -32,6 +32,7 @@ function isPath(str) {
32
32
  });
33
33
  }
34
34
  exports.isPath = isPath;
35
+ /* istanbul ignore next */
35
36
  function isHttpURL(str) {
36
37
  let urlInstance;
37
38
  try {
@@ -48,11 +49,13 @@ function isHttpURL(str) {
48
49
  return urlInstance.protocol === "http:" || urlInstance.protocol === "https:";
49
50
  }
50
51
  exports.isHttpURL = isHttpURL;
52
+ /* istanbul ignore next */
51
53
  function isFilePath(str, ext) {
52
54
  const idx = str.indexOf(`.${ext}`);
53
55
  return idx > -1 && idx === str.length - `.${ext}`.length;
54
56
  }
55
57
  exports.isFilePath = isFilePath;
58
+ /* istanbul ignore next */
56
59
  function isBrowser() {
57
60
  try {
58
61
  // eslint-disable-next-line no-undef
@@ -63,6 +66,7 @@ function isBrowser() {
63
66
  }
64
67
  }
65
68
  exports.isBrowser = isBrowser;
69
+ /* istanbul ignore next */
66
70
  function isWasmSupported() {
67
71
  try {
68
72
  if (typeof WebAssembly === "object" &&
@@ -81,11 +85,13 @@ function isWasmSupported() {
81
85
  return false;
82
86
  }
83
87
  exports.isWasmSupported = isWasmSupported;
88
+ /* istanbul ignore next */
84
89
  function isWorkerSupported() {
85
90
  // eslint-disable-next-line no-undef
86
91
  return window.Worker;
87
92
  }
88
93
  exports.isWorkerSupported = isWorkerSupported;
94
+ /* istanbul ignore next */
89
95
  function isCompatible() {
90
96
  if (!isBrowser()) {
91
97
  throw new error_1.default.NotSupportedError("Javascript Browser Environment");
@@ -98,6 +104,7 @@ function isCompatible() {
98
104
  }
99
105
  }
100
106
  exports.isCompatible = isCompatible;
107
+ /* istanbul ignore next */
101
108
  function jsString2workerURL(str) {
102
109
  // eslint-disable-next-line no-undef
103
110
  const blob = new Blob([str], { type: "text/javascript" });
@@ -112,9 +119,11 @@ function fn2workerURL(fn) {
112
119
  return URL.createObjectURL(blob);
113
120
  }
114
121
  exports.fn2workerURL = fn2workerURL;
122
+ /* istanbul ignore next */
115
123
  const isEmpty = (obj) => [Object, Array].includes((obj || {}).constructor) &&
116
124
  !Object.entries(obj || {}).length;
117
125
  exports.isEmpty = isEmpty;
126
+ /* istanbul ignore next */
118
127
  function addScript(src) {
119
128
  // eslint-disable-next-line no-undef
120
129
  const s = document.createElement("script");
@@ -124,6 +133,7 @@ function addScript(src) {
124
133
  document.body.appendChild(s);
125
134
  }
126
135
  exports.addScript = addScript;
136
+ /* istanbul ignore next */
127
137
  function last(arr) {
128
138
  if (!Array.isArray(arr)) {
129
139
  throw new Error("Argument is not array");
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coherentglobal/wasm-runner",
3
- "version": "0.0.85",
3
+ "version": "0.0.91",
4
4
  "description": "Coherent WASM runner for Javascript and Node.js",
5
5
  "main": "dist/node.js",
6
6
  "browser": "dist/browser.js",
@@ -23,11 +23,23 @@
23
23
  "bundle:full": "browserify src/browser.ts --standalone CoherentGlobal -p [ tsify ] > lib/wasmrunner.js",
24
24
  "bundle:min": "browserify src/browser.ts --standalone CoherentGlobal -p [ tsify ] | terser --compress --mangle --comments false > lib/wasmrunner.min.js",
25
25
  "prep:samples:simple-html": "yarn bundle && cp ./lib/wasmrunner.js example/simple-html/ && cp ./lib/wasmrunner.min.js example/simple-html/",
26
- "test:lcov": "nyc --check-coverage --lines 50 npm run test ",
27
- "test:reporter": "mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000 --reporter mocha-sonarqube-reporter tests --reporter-options output=./reports/test-reporter.xml",
28
- "test-coverage": "npm run test:lcov && npm run test:reporter",
29
- "test": "mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000",
30
- "test:single": "mocha -r ts-node/register --timeout 100000 "
26
+ "test:lcov": "nyc --check-coverage --reporter=lcov --lines 30 npm run test",
27
+ "test:reporter": "NODE_ENV=test mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000 --reporter mocha-sonarqube-reporter tests --reporter-options output=./reports/test-reporter.xml",
28
+ "cover": "yarn test:lcov && yarn test:reporter",
29
+ "test": "cross-env NODE_ENV=test mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000 ",
30
+ "test:chrome": "cross-env BROWSER=chrome MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
31
+ "test:firefox": "cross-env BROWSER=firefox MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
32
+ "test:edge": "cross-env BROWSER=edge MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
33
+ "test:safari": "cross-env BROWSER=safari MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
34
+ "test:opera": "cross-env BROWSER=opera MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000"
35
+ },
36
+ "nyc": {
37
+ "exclude": [
38
+ "dist/",
39
+ "src/browser/logger.js",
40
+ "src/browser/template.js",
41
+ "src/error.ts"
42
+ ]
31
43
  },
32
44
  "devDependencies": {
33
45
  "@babel/cli": "^7.20.7",
@@ -46,6 +58,7 @@
46
58
  "babelify": "^10.0.0",
47
59
  "browserify": "^17.0.0",
48
60
  "cross-blob": "^3.0.2",
61
+ "cross-env": "^7.0.3",
49
62
  "eslint": "^8.32.0",
50
63
  "eslint-config-airbnb": "19.0.4",
51
64
  "eslint-config-node": "^4.1.0",
@@ -71,7 +84,7 @@
71
84
  "supertest": "^6.3.3",
72
85
  "terser": "^5.16.1",
73
86
  "ts-node": "^10.9.1",
74
- "typescript": "4.5.4"
87
+ "typescript": "^5.0.4"
75
88
  },
76
89
  "dependencies": {
77
90
  "@babel/runtime": "^7.20.13",
@@ -82,12 +95,18 @@
82
95
  "@types/tmp": "^0.2.3",
83
96
  "@types/unzipper": "^0.10.5",
84
97
  "@types/worker-threads-pool": "^2.0.1",
98
+ "chai": "^4.3.7",
99
+ "chromedriver": "^113.0.0",
85
100
  "cuid": "^2.1.8",
101
+ "edgedriver": "^5.2.1",
86
102
  "ejs": "^3.1.8",
103
+ "geckodriver": "^4.0.1",
87
104
  "got": "11.8.6",
88
105
  "is-buffer": "^2.0.5",
106
+ "memoizerific": "^1.11.3",
89
107
  "node-worker-threads-pool": "^1.5.1",
90
108
  "pino": "^8.11.0",
109
+ "selenium-webdriver": "^4.9.2",
91
110
  "tmp": "^0.2.1",
92
111
  "tsify": "^5.0.4",
93
112
  "unzipit": "^1.4.2",
@@ -112,28 +131,5 @@
112
131
  }
113
132
  ]
114
133
  ]
115
- },
116
- "nyc": {
117
- "extends": "@istanbuljs/nyc-config-typescript",
118
- "check-coverage": true,
119
- "extension": [
120
- ".ts"
121
- ],
122
- "all": true,
123
- "include": [
124
- "src/**/*.ts",
125
- "tests/**/*.test.ts"
126
- ],
127
- "exclude": [
128
- "tests/**/*.test.js"
129
- ],
130
- "reporter": [
131
- "lcov",
132
- "text-summary"
133
- ],
134
- "report-dir": "coverage",
135
- "require": [
136
- "ts-node/register"
137
- ]
138
134
  }
139
135
  }
@@ -0,0 +1,83 @@
1
+ import { Builder, By, until } from 'selenium-webdriver';
2
+ import { Options as ChromeOptions } from 'selenium-webdriver/chrome';
3
+ import { Options as FirefoxOptions } from 'selenium-webdriver/firefox';
4
+ import { Options as EdgeOptions } from 'selenium-webdriver/edge';
5
+ import { Options as SafariOptions } from 'selenium-webdriver/safari';
6
+ import { assert } from 'chai';
7
+
8
+ let driver;
9
+
10
+ before(async function () {
11
+ this.timeout(10000);
12
+ const builder = new Builder();
13
+
14
+ const chromeOptions = new ChromeOptions();
15
+ chromeOptions.addArguments(
16
+ '--no-sandbox',
17
+ '--disable-dev-shm-usage',
18
+ '--disable-gpu',
19
+ '--headless',
20
+ '--remote-debugging-port=9222'
21
+ );
22
+
23
+ switch (process.env.BROWSER) {
24
+ case 'chrome':
25
+ builder
26
+ .forBrowser('chrome')
27
+ .setChromeOptions(chromeOptions);
28
+ break;
29
+
30
+ case 'firefox':
31
+ const firefoxOptions = new FirefoxOptions();
32
+ firefoxOptions.headless();
33
+ builder.forBrowser('firefox')
34
+ .setFirefoxOptions(firefoxOptions);
35
+ break;
36
+
37
+ case 'edge':
38
+ const edgeOptions = new EdgeOptions();
39
+ edgeOptions.headless();
40
+ builder.forBrowser('MicrosoftEdge')
41
+ .setEdgeOptions(edgeOptions);
42
+ break;
43
+
44
+ case 'safari':
45
+ builder.forBrowser('safari');
46
+ break;
47
+
48
+ case 'opera':
49
+ const operaOptions = new ChromeOptions();
50
+ operaOptions.addArguments("--headless", "--disable-gpu", "--binary=/usr/bin/opera");
51
+ builder.forBrowser('chrome').setChromeOptions(operaOptions);
52
+ break;
53
+
54
+ default:
55
+ throw new Error(`Unknown browser: ${process.env.BROWSER}`);
56
+ }
57
+
58
+ driver = builder.build();
59
+ });
60
+
61
+ after(async function () {
62
+ await driver.quit();
63
+ });
64
+
65
+ describe('Run Initialize and Run Calc', function () {
66
+ it('should run the scripts and check if "responseP" has a response', async function () {
67
+ this.timeout(30000); // Increase timeout if needed
68
+ await driver.get('http://localhost:5500/example/simple-html/index.html');
69
+ await driver.wait(async () => {
70
+ return await driver.executeScript('return typeof handleInitialization === "function" && typeof handleSubmit === "function";')
71
+ }, 10000, 'Waiting for handleInitialization and handleSubmit to be defined');
72
+ await driver.executeScript('handleInitialization()');
73
+ // Add a delay if handleSubmit depends on the results of handleInitialization
74
+ await new Promise(resolve => setTimeout(resolve, 5000)); // Wait for 5 seconds
75
+ await driver.executeScript('handleSubmit()');
76
+ // Wait until the responseP element contains text
77
+ await driver.wait(until.elementLocated(By.id('responseP')));
78
+ await driver.wait(until.elementTextMatches(await driver.findElement(By.id('responseP')), /\S+/), 10000, 'Waiting for responseP to contain text');
79
+ let responseP = await driver.findElement({ id: 'responseP' });
80
+ let responsePText = await responseP.getText();
81
+ assert.isNotEmpty(responsePText, "responseP element doesn't contain any text");
82
+ });
83
+ });
@@ -0,0 +1,11 @@
1
+ sonar.projectName=Wasm Runner JS
2
+ sonar.projectKey=wasm-runner-js
3
+ sonar.sources=src,package.json
4
+ sonar.sourceEncoding=UTF-8
5
+ sonar.tests=src
6
+ sonar.test.inclusions=**/*.test.ts,**/*.test.tsx,**/sc-global.ts
7
+ sonar.language=js
8
+ sonar.javascript.coveragePlugin=lcov
9
+ sonar.javascript.lcov.reportPaths=coverage/lcov.info
10
+ sonar.typescript.tsconfigPath=tsconfig.json
11
+ sonar.testExecutionReportPaths=reports/test-reporter.xml
package/tsconfig.json CHANGED
@@ -6,16 +6,24 @@
6
6
  "allowSyntheticDefaultImports": true,
7
7
  "noImplicitAny": false,
8
8
  "moduleResolution": "node",
9
+ "forceConsistentCasingInFileNames": false,
9
10
  "sourceMap": true,
10
11
  "outDir": "dist",
11
12
  "allowJs": true,
12
13
  "baseUrl": ".",
14
+ "forceConsistentCasingInFileNames": false,
13
15
  "paths": {
14
- "*": ["node_modules/*"]
16
+ "*": [
17
+ "node_modules/*"
18
+ ]
15
19
  },
16
20
  "resolveJsonModule": true,
17
21
  "skipLibCheck": true
18
22
  },
19
- "include": ["src"],
20
- "exclude": ["tests/**/*.test.ts"]
21
- }
23
+ "include": [
24
+ "src"
25
+ ],
26
+ "exclude": [
27
+ "tests/**/*.test.ts"
28
+ ]
29
+ }