Switch to ES6 modules, change test behavior

Now project is using ES6 modules and displays coverage reports for
browser tests (made via karma), while nodejs tests only keygens.
This commit is contained in:
Slava Bacherikov committed 2020-06-07 00:52:45 +03:00
1 parent 459654151b
commit da4eb4318f
9 files changed
+182 -779

No files matched your search

+1 -2
View File
@@ -14,11 +14,10 @@ addons:
- python3-pip - python3-pip
script: script:
- npm test - npm test
- npm run cover
- npm run browser-test - npm run browser-test
- npm run lint - npm run lint
after_sucess: after_sucess:
- npm run send-coverage - cat coverage/lcov.info | ./node_modules/.bin/coveralls
git: git:
depth: 1 depth: 1
submodules: false submodules: false
+3 -2
View File
@@ -5,9 +5,10 @@
"displayStacktrace": "all" "displayStacktrace": "all"
} }
}], }],
"spec_dir": "src", "spec_dir": "src/keygen/",
"spec_files": ["**/*.spec.ts"], "spec_files": ["**/*.spec.ts"],
"helpers": [ "helpers": [
"./node_modules/babel-register/lib/node.js" "../node_modules/esm",
"../node_modules/ts-node/register/index.js"
] ]
} }
+21 -5
View File
@@ -1,3 +1,5 @@
const path = require("path");
module.exports = function(config) { module.exports = function(config) {
var customLaunchers = { var customLaunchers = {
@@ -33,7 +35,7 @@ module.exports = function(config) {
{pattern: './ci/spec-bundle.js', watched: false} {pattern: './ci/spec-bundle.js', watched: false}
], ],
preprocessors: { preprocessors: {
'./ci/spec-bundle.js': ['webpack', 'sourcemap'], './ci/spec-bundle.js': ['webpack'],
}, },
webpackMiddleware: { webpackMiddleware: {
scripts: 'errors-only' scripts: 'errors-only'
@@ -42,14 +44,22 @@ module.exports = function(config) {
devtool: "inline-source-map", devtool: "inline-source-map",
mode: "development", mode: "development",
resolve: { resolve: {
extensions: ['.ts', '.js'], extensions: ['.ts', '.js', '.mjs'],
}, },
module: { module: {
rules: [ rules: [
{ {
test: /\.ts$/, test: /\.ts$/,
exclude: /node_modules/, exclude: /node_modules/,
use: [{loader: 'ts-loader', options: {transpileOnly: true}}] use: [
"@jsdevtools/coverage-istanbul-loader",
{loader: 'ts-loader', options: {transpileOnly: true}}
]
},
{
test: /\.m?js$/,
exclude: /node_modules/,
use: [{loader: 'babel-loader', options: {presets: ['@babel/preset-env']}}]
} }
] ]
}, },
@@ -63,7 +73,13 @@ module.exports = function(config) {
recordVideo: false, recordVideo: false,
recordScreenshots: false recordScreenshots: false
}, },
reporters: ["progress", "saucelabs"], reporters: ["progress", "saucelabs", "coverage-istanbul"],
coverageIstanbulReporter: {
reports: ['text', 'text-summary', "lcovonly"],
dir: path.join(__dirname, "coverage"),
combineBrowserReports: true,
fixWebpackSourcePaths: true,
},
browsers: ["ChromeHeadless", "FirefoxHeadless"], browsers: ["ChromeHeadless", "FirefoxHeadless"],
customLaunchers: customLaunchers, customLaunchers: customLaunchers,
singleRun: true, singleRun: true,
@@ -74,7 +90,7 @@ module.exports = function(config) {
'karma-firefox-launcher', 'karma-firefox-launcher',
'karma-sauce-launcher', 'karma-sauce-launcher',
'karma-webpack', 'karma-webpack',
'karma-sourcemap-loader' 'karma-coverage-istanbul-reporter'
] ]
}; };
+146 -755
View File
File diff suppressed because it is too large. Load diff
+7 -7
View File
@@ -3,29 +3,31 @@
"version": "2.0.0", "version": "2.0.0",
"description": "Password generator for BIOS", "description": "Password generator for BIOS",
"main": "src/ui.ts", "main": "src/ui.ts",
"browserlist": "> 0.25%, not dead", "browserslist": "> 0.25%, not dead",
"dependencies": { "dependencies": {
"jsbi": "^3.1.3" "jsbi": "^3.1.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.10.2", "@babel/core": "^7.10.2",
"@babel/preset-env": "^7.10.2", "@babel/preset-env": "^7.10.2",
"@jsdevtools/coverage-istanbul-loader": "^3.0.3",
"@types/jasmine": "^3.5.10", "@types/jasmine": "^3.5.10",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"clean-webpack-plugin": "^3.0.0", "clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^5.1.1", "copy-webpack-plugin": "^5.1.1",
"coveralls": "^3.1.0", "coveralls": "^3.1.0",
"esm": "^3.2.25",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"jasmine": "^3.5.0", "jasmine": "^3.5.0",
"jasmine-spec-reporter": "^5.0.2", "jasmine-spec-reporter": "^5.0.2",
"karma": "^5.0.9", "karma": "^5.0.9",
"karma-chrome-launcher": "^3.1.0", "karma-chrome-launcher": "^3.1.0",
"karma-coverage-istanbul-reporter": "^3.0.3",
"karma-firefox-launcher": "^1.3.0", "karma-firefox-launcher": "^1.3.0",
"karma-jasmine": "^3.3.1", "karma-jasmine": "^3.3.1",
"karma-sauce-launcher": "^1.2.0", "karma-sauce-launcher": "^1.2.0",
"karma-sourcemap-loader": "^0.3.7", "karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^4.0.2", "karma-webpack": "^4.0.2",
"nyc": "^15.1.0",
"terser-webpack-plugin": "^3.0.3", "terser-webpack-plugin": "^3.0.3",
"ts-loader": "^6.2.2", "ts-loader": "^6.2.2",
"ts-node": "^8.10.2", "ts-node": "^8.10.2",
@@ -36,14 +38,12 @@
"webpack-dev-server": "^3.11.0" "webpack-dev-server": "^3.11.0"
}, },
"scripts": { "scripts": {
"test": "ts-node ./node_modules/jasmine/bin/jasmine --config=jasmine.json", "test": "node -r esm -r ts-node/register node_modules/.bin/jasmine --config=jasmine.json",
"browser-test": "karma start",
"lint": "tslint src/**/*.ts", "lint": "tslint src/**/*.ts",
"cover": "nyc -r text -e .ts -x '**/*.spec.ts' npm test", "all": "npm test && npm run lint && npm run browser-test",
"send-coverage": "nyc report --reporter=text-lcov | coveralls",
"all": "npm test && npm run lint && npm run cover && npm run browser-test",
"build-prod": "PRODUCTION=1 GOOGLE_ANALYTICS_TAG=UA-112154345-1 webpack", "build-prod": "PRODUCTION=1 GOOGLE_ANALYTICS_TAG=UA-112154345-1 webpack",
"build-stage": "PRODUCTION=1 GOOGLE_ANALYTICS_TAG=UA-112154345-2 webpack", "build-stage": "PRODUCTION=1 GOOGLE_ANALYTICS_TAG=UA-112154345-2 webpack",
"browser-test": "karma start",
"webpack": "webpack", "webpack": "webpack",
"dev-server": "webpack-dev-server" "dev-server": "webpack-dev-server"
}, },
+1 -3
View File
@@ -2,10 +2,8 @@
/* tslint:disable:no-var-requires */ /* tslint:disable:no-var-requires */
/* Maybe need fixing for browsers where numbers is 32-bits */ /* Maybe need fixing for browsers where numbers is 32-bits */
/* Some Acer, HP laptops. 8 digit */ /* Some Acer, HP laptops. 8 digit */
import type JSBIT from "jsbi"; import JSBI from "jsbi";
import { makeSolver } from "./utils"; import { makeSolver } from "./utils";
const JSBI = require("jsbi");
type JSBI = JSBIT;
export class Crc64 { export class Crc64 {
private static tableCache: {[key: string]: JSBI[]} = {}; private static tableCache: {[key: string]: JSBI[]} = {};
+1 -1
View File
@@ -1,5 +1,5 @@
/* tslint:disable:no-var-requires */ /* tslint:disable:no-var-requires */
const JSBI = require("jsbi"); import JSBI from "jsbi";
import { modularPow, sony4x4Keygen, sony4x4Solver } from "./sony_4x4"; import { modularPow, sony4x4Keygen, sony4x4Solver } from "./sony_4x4";
describe("Sony 4x4 BIOS Keygen", () => { describe("Sony 4x4 BIOS Keygen", () => {
+1 -3
View File
@@ -1,9 +1,7 @@
// based on dogbert's pwgen-sony-4x4.py // based on dogbert's pwgen-sony-4x4.py
/* tslint:disable:no-bitwise */ /* tslint:disable:no-bitwise */
/* tslint:disable:no-var-requires */ /* tslint:disable:no-var-requires */
import type JSBIT from "jsbi"; import JSBI from "jsbi";
const JSBI = require("jsbi");
type JSBI = JSBIT;
import { makeSolver } from "./utils"; import { makeSolver } from "./utils";
const otpChars: string = "9DPK7V2F3RT6HX8J"; const otpChars: string = "9DPK7V2F3RT6HX8J";
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "commonjs", "module": "es6",
"lib": ["dom", "es5"], "lib": ["dom", "es5"],
"target": "es5", "target": "es5",
"moduleResolution": "node", "moduleResolution": "node",