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