Compare commits

...

51 Commits

Author SHA1 Message Date
c97215ed2d 5.0.20 2024-03-19 13:43:34 +01:00
6dbe5098de fix(core): update 2024-03-19 13:43:34 +01:00
3e9a288333 5.0.19 2024-03-19 13:34:57 +01:00
07b876ea2c fix(core): update 2024-03-19 13:34:56 +01:00
28fec7a488 5.0.18 2024-03-19 13:13:57 +01:00
b99ac03942 fix(core): update 2024-03-19 13:13:56 +01:00
ba6519adb5 5.0.17 2024-03-13 22:13:31 +01:00
2de0e63b3c fix(core): update 2024-03-13 22:13:30 +01:00
2359841a15 5.0.16 2024-03-13 22:07:58 +01:00
0ef865ea9f fix(core): update 2024-03-13 22:07:58 +01:00
a8beda7597 5.0.15 2023-08-12 11:40:29 +02:00
e029c8601f fix(core): update 2023-08-12 11:40:29 +02:00
1b9f414e82 5.0.14 2023-08-12 11:39:09 +02:00
1aa4152de2 fix(core): update 2023-08-12 11:39:09 +02:00
b93e962bdf 5.0.13 2023-07-13 03:18:09 +02:00
0faf2ce3df fix(core): update 2023-07-13 03:18:08 +02:00
831f67053e 5.0.12 2023-07-13 02:41:11 +02:00
26e63372f8 fix(core): update 2023-07-13 02:41:10 +02:00
929a67585f 5.0.11 2023-07-13 02:40:10 +02:00
fb8d291441 fix(core): update 2023-07-13 02:40:09 +02:00
5657b49a51 5.0.10 2023-07-13 02:39:42 +02:00
db39da1faf fix(core): update 2023-07-13 02:39:42 +02:00
e9d6e9f9dd 5.0.9 2023-07-13 02:09:54 +02:00
d8e638a07f fix(core): update 2023-07-13 02:09:53 +02:00
85eb222bd9 5.0.8 2023-06-22 13:35:35 +02:00
189c0bae30 fix(core): update 2023-06-22 13:35:35 +02:00
570422ae61 5.0.7 2023-06-22 13:32:44 +02:00
4ba34a4b88 fix(core): update 2023-06-22 13:32:43 +02:00
ae2aabaa86 5.0.6 2022-07-24 15:22:10 +02:00
269a8c974e fix(core): update 2022-07-24 15:22:10 +02:00
10ab777e7f 5.0.5 2022-07-24 14:03:45 +02:00
898eed4584 fix(core): update 2022-07-24 14:03:44 +02:00
7a1eae2bfb 5.0.4 2022-07-24 14:03:30 +02:00
8f7167f201 fix(core): update 2022-07-24 14:03:29 +02:00
6fa151f933 5.0.3 2022-03-24 13:17:20 +01:00
f846b91378 fix(core): update 2022-03-24 13:17:20 +01:00
a0840ee9f4 5.0.2 2022-03-14 13:17:55 +01:00
041534f363 fix(core): update 2022-03-14 13:17:54 +01:00
c89362ba8a 5.0.1 2022-03-14 12:56:17 +01:00
f07879d2c1 fix(core): update 2022-03-14 12:56:17 +01:00
eba3a19488 5.0.0 2022-03-14 11:23:02 +01:00
f83479a407 4.0.9 2022-03-14 11:22:18 +01:00
da711c119f fix(core): update 2022-03-14 11:22:17 +01:00
6690238251 4.0.8 2022-02-28 13:17:00 +01:00
27a794b83c fix(core): update 2022-02-28 13:16:59 +01:00
b3c4a58491 4.0.7 2022-02-15 16:49:29 +01:00
50c34f89ee fix(core): update 2022-02-15 16:49:29 +01:00
b813453c5f 4.0.6 2022-02-15 16:48:59 +01:00
9a6dc33b6b fix(core): update 2022-02-15 16:48:59 +01:00
8bf99ae7ec 4.0.5 2022-02-15 16:48:04 +01:00
cc708b29ae fix(core): update 2022-02-15 16:48:03 +01:00
24 changed files with 5834 additions and 27750 deletions

View File

@ -0,0 +1,66 @@
name: Default (not tags)
on:
push:
tags-ignore:
- '**'
env:
IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}}
jobs:
security:
runs-on: ubuntu-latest
continue-on-error: true
container:
image: ${{ env.IMAGE }}
steps:
- uses: actions/checkout@v3
- name: Install pnpm and npmci
run: |
pnpm install -g pnpm
pnpm install -g @shipzone/npmci
- name: Run npm prepare
run: npmci npm prepare
- name: Audit production dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --prod
continue-on-error: true
- name: Audit development dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --dev
continue-on-error: true
test:
if: ${{ always() }}
needs: security
runs-on: ubuntu-latest
container:
image: ${{ env.IMAGE }}
steps:
- uses: actions/checkout@v3
- name: Test stable
run: |
npmci node install stable
npmci npm install
npmci npm test
- name: Test build
run: |
npmci node install stable
npmci npm install
npmci npm build

View File

@ -0,0 +1,124 @@
name: Default (tags)
on:
push:
tags:
- '*'
env:
IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}}
jobs:
security:
runs-on: ubuntu-latest
continue-on-error: true
container:
image: ${{ env.IMAGE }}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @shipzone/npmci
npmci npm prepare
- name: Audit production dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --prod
continue-on-error: true
- name: Audit development dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --dev
continue-on-error: true
test:
if: ${{ always() }}
needs: security
runs-on: ubuntu-latest
container:
image: ${{ env.IMAGE }}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @shipzone/npmci
npmci npm prepare
- name: Test stable
run: |
npmci node install stable
npmci npm install
npmci npm test
- name: Test build
run: |
npmci node install stable
npmci npm install
npmci npm build
release:
needs: test
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
container:
image: ${{ env.IMAGE }}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @shipzone/npmci
npmci npm prepare
- name: Release
run: |
npmci node install stable
npmci npm publish
metadata:
needs: test
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
container:
image: ${{ env.IMAGE }}
continue-on-error: true
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @shipzone/npmci
npmci npm prepare
- name: Code quality
run: |
npmci command npm install -g typescript
npmci npm install
- name: Trigger
run: npmci trigger
- name: Build docs and upload artifacts
run: |
npmci node install stable
npmci npm install
pnpm install -g @gitzone/tsdoc
npmci command tsdoc
continue-on-error: true

View File

@ -1,137 +0,0 @@
# gitzone ci_default
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
cache:
paths:
- .npmci_cache/
key: '$CI_BUILD_STAGE'
stages:
- security
- test
- release
- metadata
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- 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
tags:
- docker
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
tags:
- docker
allow_failure: true
# ====================
# test stage
# ====================
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
release:
stage: release
script:
- npmci node install stable
- npmci npm publish
only:
- tags
tags:
- lossless
- docker
- notpriv
# ====================
# metadata stage
# ====================
codequality:
stage: metadata
allow_failure: true
only:
- tags
script:
- npmci command npm install -g tslint typescript
- npmci npm prepare
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- lossless
- docker
- priv
trigger:
stage: metadata
script:
- npmci trigger
only:
- tags
tags:
- lossless
- docker
- notpriv
pages:
stage: metadata
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci npm install
- npmci command tsdoc
tags:
- lossless
- docker
- notpriv
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public
allow_failure: true

24
.vscode/launch.json vendored
View File

@ -2,28 +2,10 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "current file", "command": "npm test",
"type": "node", "name": "Run npm test",
"request": "launch", "request": "launch",
"args": [ "type": "node-terminal"
"${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"
} }
] ]
} }

View File

@ -12,10 +12,10 @@
"projectType": "npm", "projectType": "npm",
"module": { "module": {
"githost": "gitlab.com", "githost": "gitlab.com",
"gitscope": "pushrocks", "gitscope": "push.rocks",
"gitrepo": "tapbundle", "gitrepo": "tapbundle",
"shortDescription": "tap bundled for tapbuffer", "description": "tap bundled for tapbuffer",
"npmPackagename": "@pushrocks/tapbundle", "npmPackagename": "@push.rocks/tapbundle",
"license": "MIT" "license": "MIT"
} }
} }

27494
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,15 @@
{ {
"name": "@pushrocks/tapbundle", "name": "@push.rocks/tapbundle",
"private": false, "private": false,
"version": "4.0.4", "version": "5.0.20",
"description": "tap bundled for tapbuffer", "description": "tap bundled for tapbuffer",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts", "typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": { "scripts": {
"test": "(tstest test/)", "test": "(tstest test/)",
"build": "(tsbuild --web)" "build": "(tsbuild --web --allowimplicitany --skiplibcheck)",
"buildDocs": "tsdoc"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -20,21 +22,21 @@
}, },
"homepage": "https://gitlab.com/pushrocks/tapbundle#README", "homepage": "https://gitlab.com/pushrocks/tapbundle#README",
"dependencies": { "dependencies": {
"@open-wc/testing-helpers": "^2.0.4", "@open-wc/testing": "^4.0.0",
"@pushrocks/smartdelay": "^2.0.13", "@push.rocks/consolecolor": "^2.0.2",
"@pushrocks/smartenv": "^4.0.16", "@push.rocks/smartdelay": "^3.0.5",
"@pushrocks/smartexpect": "^1.0.12", "@push.rocks/smartenv": "^5.0.12",
"@pushrocks/smartpromise": "^3.1.6", "@push.rocks/smartexpect": "^1.0.21",
"@pushrocks/smarttime": "^3.0.45" "@push.rocks/smartjson": "^5.0.15",
"@push.rocks/smartpromise": "^4.0.2",
"@push.rocks/smarttime": "^4.0.6"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.29", "@gitzone/tsbuild": "^2.1.66",
"@gitzone/tsrun": "^1.2.18", "@gitzone/tsrun": "^1.2.43",
"@gitzone/tstest": "^1.0.64", "@gitzone/tstest": "^1.0.77",
"@types/node": "^17.0.18", "@types/node": "^20.11.29",
"randomstring": "^1.2.2", "randomstring": "^1.3.0"
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",

5514
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,26 @@
# @pushrocks/tapbundle # @push.rocks/tapbundle
tap bundled for tapbuffer tap bundled for tapbuffer
## Availabililty and Links ## Availabililty and Links
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/tapbundle) * [npmjs.org (npm package)](https://www.npmjs.com/package/@push.rocks/tapbundle)
* [gitlab.com (source)](https://gitlab.com/pushrocks/tapbundle) * [gitlab.com (source)](https://gitlab.com/push.rocks/tapbundle)
* [github.com (source mirror)](https://github.com/pushrocks/tapbundle) * [github.com (source mirror)](https://github.com/push.rocks/tapbundle)
* [docs (typedoc)](https://pushrocks.gitlab.io/tapbundle/) * [docs (typedoc)](https://push.rocks.gitlab.io/tapbundle/)
## Status for master ## Status for master
Status Category | Status Badge Status Category | Status Badge
-- | -- -- | --
GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/tapbundle/badges/master/pipeline.svg)](https://lossless.cloud) GitLab Pipelines | [![pipeline status](https://gitlab.com/push.rocks/tapbundle/badges/master/pipeline.svg)](https://lossless.cloud)
GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/tapbundle/badges/master/coverage.svg)](https://lossless.cloud) GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/push.rocks/tapbundle/badges/master/coverage.svg)](https://lossless.cloud)
npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/tapbundle)](https://lossless.cloud) npm | [![npm downloads per month](https://badgen.net/npm/dy/@push.rocks/tapbundle)](https://lossless.cloud)
Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/tapbundle)](https://lossless.cloud) Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/push.rocks/tapbundle)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud) TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud) Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/tapbundle)](https://lossless.cloud) PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@push.rocks/tapbundle)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/tapbundle)](https://lossless.cloud) PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@push.rocks/tapbundle)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/tapbundle)](https://lossless.cloud) BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@push.rocks/tapbundle)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage ## Usage
@ -31,8 +30,12 @@ A few words on TypeScript
### Included in this package ### Included in this package
* tap compatible testing framework written in TypeScript - tap compatible testing framework written in TypeScript
* `expect` and `expectAsync` from the package `@pushrocks/smartexpect` - `expect` and `expectAsync` from the package `@pushrocks/smartexpect`
### A few words on tap
**"tap"** stands for **"test anything protocol"**. Its programming language agnostic as long as the test interpreter can read the tap console output. This package is optimized to work with @gitzone/tstest as interpreter, which offers different V8 based runtime environments like nodejs, chrome, and deno.
### Write your first tests ### Write your first tests
@ -55,9 +58,10 @@ const myTest2 = tap.test('my awesome test 2', async (tools) => {
tap.test('my awesome test 3', async (tools) => { tap.test('my awesome test 3', async (tools) => {
expect(true).toBeTrue(); // will not throw expect(true).toBeTrue(); // will not throw
await expectAsync(tools.delayFor(2000)).toBeUndefined(); // yay expect promises :) await expectAsync(tools.delayFor(2000)).toBeUndefined(); // yay expect promises :)
expectAsync(myTest2.promise) // access other tests metadata :) expectAsync(myTest2.promise) // access other tests metadata :)
.property('hrtMeasurement') // and drill down into properties .property('hrtMeasurement') // and drill down into properties
.property('milliSeconds').toBeGreaterThan(1000); .property('milliSeconds')
.toBeGreaterThan(1000);
}); });
const myTest4 = tap.testParallel('my awesome test 4', async (tools) => { const myTest4 = tap.testParallel('my awesome test 4', async (tools) => {
@ -78,7 +82,6 @@ We are always happy for code contributions. If you are not the code contributing
For further information read the linked docs at the top of this readme. For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) ## Legal
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy) | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -1,4 +1,4 @@
import { tap, expect, webhelpers } from '../ts/index'; import { tap, expect, webhelpers } from '../ts/index.js';
tap.preTask('custompretask', async () => { tap.preTask('custompretask', async () => {
console.log('this is a pretask'); console.log('this is a pretask');
@ -21,8 +21,11 @@ const test2 = tap.test('my second test', async (tools) => {
const test3 = tap.test( const test3 = tap.test(
'my third test -> test2 should take longer than test1 and endure at least 1000ms', 'my third test -> test2 should take longer than test1 and endure at least 1000ms',
async () => { async () => {
expect((await test1).hrtMeasurement.milliSeconds < (await test2).hrtMeasurement.milliSeconds).toBeTrue(); expect(
expect((await test2).hrtMeasurement.milliSeconds > 10).toBeTrue(); (await test1.testPromise).hrtMeasurement.milliSeconds <
(await test2).hrtMeasurement.milliSeconds
).toBeTrue();
expect((await test2.testPromise).hrtMeasurement.milliSeconds > 10).toBeTrue();
} }
); );

View File

@ -1,4 +1,4 @@
import { tap, expect, TapWrap } from '../ts/index'; import { tap, expect, TapWrap } from '../ts/index.js';
tap.test('should run a test', async () => {}); tap.test('should run a test', async () => {});

View File

@ -1,4 +1,4 @@
import { tap, expect } from '../ts/index'; import { tap, expect } from '../ts/index.js';
tap.preTask('hi there', async () => { tap.preTask('hi there', async () => {
console.log('this is a pretask'); console.log('this is a pretask');
@ -41,4 +41,9 @@ const test6 = tap.skip.test('my 6th test -> should fail after 1000ms', async (to
await tools.delayFor(2000); await tools.delayFor(2000);
}); });
const test7 = tap.test('my 7th test -> should print a colored string', async (tools) => {
const cs = await tools.coloredString('hello', 'red', 'cyan');
console.log(cs);
});
tap.start(); tap.start();

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@push.rocks/tapbundle',
version: '5.0.20',
description: 'tap bundled for tapbuffer'
}

View File

@ -1,10 +1,7 @@
export { tap } from './tapbundle.classes.tap'; export { tap } from './tapbundle.classes.tap.js';
export { TapWrap } from './tapbundle.classes.tapwrap'; export { TapWrap } from './tapbundle.classes.tapwrap.js';
export { webhelpers } from './webhelpers'; export { webhelpers } from './webhelpers.js';
import { expect, expectAsync } from '@pushrocks/smartexpect'; import { expect, expectAsync } from '@push.rocks/smartexpect';
export { export { expect, expectAsync };
expect,
expectAsync
}

View File

@ -1,5 +1,5 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
import { TapTools } from './tapbundle.classes.taptools'; import { TapTools } from './tapbundle.classes.taptools.js';
export interface IPreTaskFunction { export interface IPreTaskFunction {
(tapTools?: TapTools): Promise<any>; (tapTools?: TapTools): Promise<any>;

View File

@ -1,8 +1,8 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
import { IPreTaskFunction, PreTask } from './tapbundle.classes.pretask'; import { type IPreTaskFunction, PreTask } from './tapbundle.classes.pretask.js';
import { TapTest, ITestFunction } from './tapbundle.classes.taptest'; import { TapTest, type ITestFunction } from './tapbundle.classes.taptest.js';
export class Tap <T> { export class Tap<T> {
/** /**
* skips a test * skips a test
* tests marked with tap.skip.test() are never executed * tests marked with tap.skip.test() are never executed

View File

@ -1,17 +1,19 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
import { tapCreator } from './tapbundle.tapcreator'; import { tapCreator } from './tapbundle.tapcreator.js';
import { TapTools } from './tapbundle.classes.taptools'; import { TapTools } from './tapbundle.classes.taptools.js';
// imported interfaces // imported interfaces
import { Deferred } from '@pushrocks/smartpromise'; import { Deferred } from '@push.rocks/smartpromise';
import { HrtMeasurement } from '@pushrocks/smarttime'; import { HrtMeasurement } from '@push.rocks/smarttime';
// interfaces // interfaces
export type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout'; export type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout';
export interface ITestFunction <T> { (tapTools?: TapTools): Promise<T> }; export interface ITestFunction<T> {
(tapTools?: TapTools): Promise<T>;
}
export class TapTest <T = unknown> { export class TapTest<T = unknown> {
public description: string; public description: string;
public failureAllowed: boolean; public failureAllowed: boolean;
public hrtMeasurement: HrtMeasurement; public hrtMeasurement: HrtMeasurement;
@ -27,7 +29,11 @@ export class TapTest <T = unknown> {
/** /**
* constructor * constructor
*/ */
constructor(optionsArg: { description: string; testFunction: ITestFunction<T>; parallel: boolean }) { constructor(optionsArg: {
description: string;
testFunction: ITestFunction<T>;
parallel: boolean;
}) {
this.description = optionsArg.description; this.description = optionsArg.description;
this.hrtMeasurement = new HrtMeasurement(); this.hrtMeasurement = new HrtMeasurement();
this.parallel = optionsArg.parallel; this.parallel = optionsArg.parallel;

View File

@ -1,5 +1,5 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
import { TapTest } from './tapbundle.classes.taptest'; import { TapTest } from './tapbundle.classes.taptest.js';
export interface IPromiseFunc { export interface IPromiseFunc {
(): Promise<any>; (): Promise<any>;
@ -33,6 +33,10 @@ export class TapTools {
await plugins.smartdelay.delayForRandom(timeMilliMinArg, timeMilliMaxArg); await plugins.smartdelay.delayForRandom(timeMilliMinArg, timeMilliMaxArg);
} }
public async coloredString(...args: Parameters<typeof plugins.consolecolor.coloredString>) {
return plugins.consolecolor.coloredString(...args);
}
public async timeout(timeMilliArg: number) { public async timeout(timeMilliArg: number) {
const timeout = new plugins.smartdelay.Timeout(timeMilliArg); const timeout = new plugins.smartdelay.Timeout(timeMilliArg);
timeout.makeUnrefed(); timeout.makeUnrefed();
@ -55,4 +59,6 @@ export class TapTools {
public defer() { public defer() {
return plugins.smartpromise.defer(); return plugins.smartpromise.defer();
} }
public smartjson = plugins.smartjson;
} }

View File

@ -1,4 +1,4 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
export interface ITapWrapOptions { export interface ITapWrapOptions {
before: () => Promise<any>; before: () => Promise<any>;

View File

@ -1,7 +1,9 @@
// pushrocks // pushrocks
import * as smartdelay from '@pushrocks/smartdelay'; import * as consolecolor from '@push.rocks/consolecolor';
import * as smartenv from '@pushrocks/smartenv'; import * as smartdelay from '@push.rocks/smartdelay';
import * as smartexpect from '@pushrocks/smartexpect'; import * as smartenv from '@push.rocks/smartenv';
import * as smartpromise from '@pushrocks/smartpromise'; import * as smartexpect from '@push.rocks/smartexpect';
import * as smartjson from '@push.rocks/smartjson';
import * as smartpromise from '@push.rocks/smartpromise';
export { smartdelay, smartenv, smartexpect, smartpromise }; export { consolecolor, smartdelay, smartenv, smartexpect, smartjson, smartpromise };

View File

@ -1,4 +1,4 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
export class TapCreator { export class TapCreator {
// TODO: // TODO:

View File

@ -1,6 +1,6 @@
import * as plugins from './tapbundle.plugins'; import * as plugins from './tapbundle.plugins.js';
import type { fixture, html } from '@open-wc/testing-helpers'; import type { fixture, html } from '@open-wc/testing';
import { tap } from './tapbundle.classes.tap'; import { tap } from './tapbundle.classes.tap.js';
class WebHelpers { class WebHelpers {
html: typeof html; html: typeof html;
@ -8,17 +8,17 @@ class WebHelpers {
constructor() { constructor() {
const smartenv = new plugins.smartenv.Smartenv(); const smartenv = new plugins.smartenv.Smartenv();
if(smartenv.isBrowser) { if (smartenv.isBrowser) {
this.enable(); this.enable();
} }
} }
public enable() { public enable() {
tap.preTask('enable webhelpers', async () => { tap.preTask('enable webhelpers', async () => {
const webhelpers = await import('@open-wc/testing-helpers') const webhelpers = await import('@open-wc/testing');
this.html = webhelpers.html; this.html = webhelpers.html;
this.fixture = webhelpers.fixture; this.fixture = webhelpers.fixture;
}) });
} }
} }

14
tsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"verbatimModuleSyntax": true
},
"exclude": [
"dist_*/**/*.d.ts"
]
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}