Compare commits

...

30 Commits

Author SHA1 Message Date
f7483ef995 1.0.66 2022-03-13 00:40:22 +01:00
1460f97c52 fix(core): update 2022-03-13 00:40:21 +01:00
dfac554303 1.0.65 2022-03-13 00:30:33 +01:00
1d751bdcdf fix(core): update 2022-03-13 00:30:32 +01:00
bd6713eee8 1.0.64 2022-02-15 11:28:34 +01:00
440b41611b fix(core): update 2022-02-15 11:28:34 +01:00
78a40de700 1.0.63 2022-02-15 00:27:21 +01:00
e0eb00d755 fix(core): update 2022-02-15 00:27:20 +01:00
dbbcbf4ea2 1.0.62 2022-02-14 23:50:07 +01:00
8c13b9db89 fix(core): update 2022-02-14 23:50:07 +01:00
f813a79124 1.0.61 2022-02-14 15:40:12 +01:00
766138aa25 fix(core): update 2022-02-14 15:40:11 +01:00
72880b4a2d 1.0.60 2021-11-07 20:54:40 +01:00
bd5731c439 fix(core): update 2021-11-07 20:54:39 +01:00
0caebb7448 1.0.59 2021-10-06 17:58:39 +02:00
ed896b7f1c fix(core): update 2021-10-06 17:58:38 +02:00
69ec5a98ab 1.0.58 2021-10-06 13:25:59 +02:00
3b93886147 fix(core): update 2021-10-06 13:25:59 +02:00
5949988293 1.0.57 2021-08-20 18:43:11 +02:00
04f7be07a3 fix(core): update 2021-08-20 18:43:11 +02:00
d331f90d24 1.0.56 2021-08-20 18:25:47 +02:00
224400dcb5 fix(core): update 2021-08-20 18:25:47 +02:00
7601ca599a 1.0.55 2021-08-20 18:23:39 +02:00
994a1bc98d fix(core): update 2021-08-20 18:23:39 +02:00
ca51c9e15b 1.0.54 2021-04-29 15:48:45 +00:00
4c4f08152b fix(core): update 2021-04-29 15:48:45 +00:00
39bd80106a 1.0.53 2021-04-29 15:33:54 +00:00
d6b94b534b fix(core): update 2021-04-29 15:33:53 +00:00
d19d3fc51e 1.0.52 2020-10-01 14:29:01 +00:00
f7f1bf25f6 fix(core): update 2020-10-01 14:29:01 +00:00
19 changed files with 13989 additions and 7029 deletions

View File

@ -12,6 +12,9 @@ stages:
- release
- metadata
before_script:
- npm install -g @shipzone/npmci
# ====================
# security stage
# ====================
@ -33,9 +36,10 @@ auditProductionDependencies:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- # npmci command npm audit --audit-level=high --only=prod --production
- npmci command npm audit --audit-level=high --only=prod --production
tags:
- docker
allow_failure: true
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci

24
.vscode/launch.json vendored
View File

@ -2,28 +2,10 @@
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"command": "npm test",
"name": "Run npm test",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
"type": "node-terminal"
}
]
}

4
cli.child.ts Normal file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
import * as cliTool from './ts/index.js';
cliTool.runCli();

2
cli.js
View File

@ -1,4 +1,4 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
const cliTool = require('./dist_ts/index');
const cliTool = await import('./dist_ts/index.js');
cliTool.runCli();

View File

@ -1,5 +1,5 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
require('@gitzone/tsrun');
const cliTool = require('./ts/index');
cliTool.runCli();
import * as tsrun from '@gitzone/tsrun';
tsrun.runPath('./cli.child.js', import.meta.url);

View File

@ -9,7 +9,7 @@
"githost": "gitlab.com",
"gitscope": "gitzone",
"gitrepo": "tstest",
"shortDescription": "a test utility to run tests that match test/**/*.ts",
"description": "a test utility to run tests that match test/**/*.ts",
"npmPackagename": "@gitzone/tstest",
"license": "MIT"
}

20858
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,11 @@
{
"name": "@gitzone/tstest",
"version": "1.0.51",
"version": "1.0.66",
"private": false,
"description": "a test utility to run tests that match test/**/*.ts",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"type": "module",
"author": "Lossless GmbH",
"license": "MIT",
"bin": {
@ -15,27 +16,27 @@
"prepareTest": "git clone https://gitlab.com/sandboxzone/sandbox-npmts.git .nogit/sandbox-npmts && cd .nogit/sandbox-npmts && npm install",
"tstest": "cd .nogit/sandbox-npmts && node ../../cli.ts.js test/ --web",
"cleanUp": "rm -rf .nogit/sandbox-npmts",
"build": "(tsbuild --web)"
"build": "(tsbuild --web --skiplibcheck)"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsbuild": "^2.1.48",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
},
"dependencies": {
"@gitzone/tsbundle": "^1.0.78",
"@gitzone/tsrun": "^1.2.12",
"@gitzone/tsbundle": "^1.0.91",
"@gitzone/tsrun": "^1.2.31",
"@pushrocks/consolecolor": "^2.0.1",
"@pushrocks/smartbrowser": "^1.0.17",
"@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartexpress": "^3.0.76",
"@pushrocks/smartfile": "^8.0.0",
"@pushrocks/smartlog": "^2.0.39",
"@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartshell": "^2.0.25",
"@pushrocks/tapbundle": "^3.2.9",
"@pushrocks/smartbrowser": "^1.0.22",
"@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartexpress": "^3.0.108",
"@pushrocks/smartfile": "^9.0.6",
"@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartpromise": "^3.1.7",
"@pushrocks/smartshell": "^2.0.30",
"@pushrocks/tapbundle": "^4.0.8",
"@types/figures": "^3.0.1",
"figures": "^3.0.0"
"figures": "^4.0.0"
},
"files": [
"ts/**/*",

View File

@ -25,9 +25,29 @@ Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20W
## Usage
## Contribution
## cli usage
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
lets assume we have a directory called test/ where all our tests arae defined. Simply type
```
tstest test/
```
to run all tests.
## Syntax
tstest supports tap syntax. In other words your testfiles are run in a subprocess, and the console output contains trigger messages for tstest to determine test status. Inside your testfile you should use `@pushrocks/tapbundle` for the best results.
## Environments
tstest supports different environments:
- a testfile called `test-something.node.ts` will be run in node
- a testfile called `test-something.chrome.ts` will be run in chrome environment (bundled through parcel and run through puppeteer)
- a testfile called `test-something.both.ts` will be run in node an chrome, which is good for isomorphic packages.
> note: there is alpha support for the deno environment by naming a file test-something.deno.ts
## Contribution

View File

@ -1,5 +1,5 @@
import { expect, tap } from '@pushrocks/tapbundle';
import * as tstest from '../ts/index';
import * as tstest from '../ts/index.js';
tap.test('prepare test', async () => {});

View File

@ -1,6 +1,10 @@
import { TsTest } from './tstest.classes.tstest';
import { TsTest } from './tstest.classes.tstest.js';
export const runCli = async () => {
if (!process.argv[2]) {
console.error('You must specify a test directory as argument. Please try again.');
process.exit(1);
}
const tsTestInstance = new TsTest(process.cwd(), process.argv[2]);
await tsTestInstance.run();
};

View File

@ -1,11 +1,11 @@
// ============
// combines different tap test files to an overall result
// ============
import * as plugins from './tstest.plugins';
import * as plugins from './tstest.plugins.js';
import { coloredString as cs } from '@pushrocks/consolecolor';
import { TapParser } from './tstest.classes.tap.parser';
import * as logPrefixes from './tstest.logprefixes';
import { TapParser } from './tstest.classes.tap.parser.js';
import * as logPrefixes from './tstest.logprefixes.js';
export class TapCombinator {
tapParserStore: TapParser[] = [];

View File

@ -4,9 +4,9 @@ import { coloredString as cs } from '@pushrocks/consolecolor';
// ============
// combines different tap test files to an overall result
// ============
import * as plugins from './tstest.plugins';
import { TapTestResult } from './tstest.classes.tap.testresult';
import * as logPrefixes from './tstest.logprefixes';
import * as plugins from './tstest.plugins.js';
import { TapTestResult } from './tstest.classes.tap.testresult.js';
import * as logPrefixes from './tstest.logprefixes.js';
export class TapParser {
testStore: TapTestResult[] = [];

View File

@ -1,7 +1,7 @@
// ============
// combines different tap test files to an overall result
// ============
import * as plugins from './tstest.plugins';
import * as plugins from './tstest.plugins.js';
export class TapTestResult {
testLogBuffer = Buffer.from('');

View File

@ -1,11 +1,11 @@
import * as plugins from './tstest.plugins';
import * as paths from './tstest.paths';
import * as plugins from './tstest.plugins.js';
import * as paths from './tstest.paths.js';
import { Smartfile } from '@pushrocks/smartfile';
// tap related stuff
import { TapCombinator } from './tstest.classes.tap.combinator';
import { TapParser } from './tstest.classes.tap.parser';
import { TapTestResult } from './tstest.classes.tap.testresult';
import { TapCombinator } from './tstest.classes.tap.combinator.js';
import { TapParser } from './tstest.classes.tap.parser.js';
import { TapTestResult } from './tstest.classes.tap.testresult.js';
export class TestDirectory {
/**

View File

@ -1,12 +1,12 @@
import * as plugins from './tstest.plugins';
import * as paths from './tstest.paths';
import * as logPrefixes from './tstest.logprefixes';
import * as plugins from './tstest.plugins.js';
import * as paths from './tstest.paths.js';
import * as logPrefixes from './tstest.logprefixes.js';
import { coloredString as cs } from '@pushrocks/consolecolor';
import { TestDirectory } from './tstest.classes.testdirectory';
import { TapCombinator } from './tstest.classes.tap.combinator';
import { TapParser } from './tstest.classes.tap.parser';
import { TestDirectory } from './tstest.classes.testdirectory.js';
import { TapCombinator } from './tstest.classes.tap.combinator.js';
import { TapParser } from './tstest.classes.tap.parser.js';
export class TsTest {
public testDir: TestDirectory;
@ -100,7 +100,7 @@ export class TsTest {
// lets bundle the test
await plugins.smartfile.fs.ensureDir(tsbundleCacheDirPath);
await this.tsbundleInstance.buildTest(fileNameArg, bundleFilePath, 'parcel');
await this.tsbundleInstance.buildTest(process.cwd(), fileNameArg, bundleFilePath, 'rollup');
// lets create a server
const server = new plugins.smartexpress.Server({
@ -132,7 +132,7 @@ export class TsTest {
const evaluation = await this.smartbrowserInstance.evaluateOnPage(
`http://localhost:3007/test?bundleName=${bundleFileName}`,
async () => {
const convertToText = (obj) => {
const convertToText = (obj: any): string => {
// create an array that will later be joined into a string.
const stringArray = [];
@ -198,8 +198,11 @@ export class TsTest {
console.error(err);
}
if (globalThis.tapbundleDeferred && globalThis.tapbundleDeferred.promise) {
await globalThis.tapbundleDeferred.promise;
if (
(globalThis as any).tapbundleDeferred &&
(globalThis as any).tapbundleDeferred.promise
) {
await (globalThis as any).tapbundleDeferred.promise;
} else {
console.log('Error: Could not find tapbundle Deferred');
}

View File

@ -1,4 +1,4 @@
import * as plugins from './tstest.plugins';
import * as plugins from './tstest.plugins.js';
import { coloredString as cs } from '@pushrocks/consolecolor';
export const TapPrefix = cs(`::TAP::`, 'pink', 'black');

View File

@ -1,5 +1,5 @@
import * as plugins from './tstest.plugins';
import * as plugins from './tstest.plugins.js';
export const cwd = process.cwd();
export const testDir = plugins.path.join(cwd, './test/');
export const binDirectory = plugins.path.join(cwd, 'node_modules/.bin');
export const binDirectory = plugins.path.join(cwd, './node_modules/.bin');

View File

@ -32,6 +32,6 @@ import * as tsbundle from '@gitzone/tsbundle';
export { tsbundle };
// sindresorhus
import * as figures from 'figures';
import figures from 'figures';
export { figures };