From e029c8601fdf2a301d47a969eeca8fba864240dd Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Sat, 12 Aug 2023 11:40:29 +0200 Subject: [PATCH] fix(core): update --- .gitea/workflows/default_nottags.yaml | 66 +++++++++++++ .gitea/workflows/default_tags.yaml | 124 +++++++++++++++++++++++ .gitlab-ci.yml | 137 -------------------------- .vscode/launch.json | 24 +---- npmextra.json | 2 +- package.json | 5 +- readme.md | 41 ++++---- test/test.browser.nonci.ts | 5 +- ts/00_commitinfo_data.ts | 2 +- ts/index.ts | 5 +- ts/tapbundle.classes.taptest.ts | 12 ++- ts/webhelpers.ts | 4 +- 12 files changed, 234 insertions(+), 193 deletions(-) create mode 100644 .gitea/workflows/default_nottags.yaml create mode 100644 .gitea/workflows/default_tags.yaml delete mode 100644 .gitlab-ci.yml diff --git a/.gitea/workflows/default_nottags.yaml b/.gitea/workflows/default_nottags.yaml new file mode 100644 index 0000000..9f4e743 --- /dev/null +++ b/.gitea/workflows/default_nottags.yaml @@ -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 diff --git a/.gitea/workflows/default_tags.yaml b/.gitea/workflows/default_tags.yaml new file mode 100644 index 0000000..6290cbd --- /dev/null +++ b/.gitea/workflows/default_tags.yaml @@ -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 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 9a4467e..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -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 diff --git a/.vscode/launch.json b/.vscode/launch.json index 112db52..26e9f92 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -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" } ] } diff --git a/npmextra.json b/npmextra.json index 6eacadb..c1712e5 100644 --- a/npmextra.json +++ b/npmextra.json @@ -14,7 +14,7 @@ "githost": "gitlab.com", "gitscope": "push.rocks", "gitrepo": "tapbundle", - "shortDescription": "tap bundled for tapbuffer", + "description": "tap bundled for tapbuffer", "npmPackagename": "@push.rocks/tapbundle", "license": "MIT" } diff --git a/package.json b/package.json index 45b3d05..53a768c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "type": "module", "scripts": { "test": "(tstest test/)", - "build": "(tsbuild --web --allowimplicitany --skiplibcheck)" + "build": "(tsbuild --web --allowimplicitany --skiplibcheck)", + "buildDocs": "tsdoc" }, "repository": { "type": "git", @@ -50,4 +51,4 @@ "browserslist": [ "last 1 chrome versions" ] -} +} \ No newline at end of file diff --git a/readme.md b/readme.md index e230fe8..a540197 100644 --- a/readme.md +++ b/readme.md @@ -1,27 +1,26 @@ -# @pushrocks/tapbundle -tap based testing framework for use with @gitzone/tstest +# @push.rocks/tapbundle +tap bundled for tapbuffer ## Availabililty and Links -* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/tapbundle) -* [gitlab.com (source)](https://gitlab.com/pushrocks/tapbundle) -* [github.com (source mirror)](https://github.com/pushrocks/tapbundle) -* [docs (typedoc)](https://pushrocks.gitlab.io/tapbundle/) +* [npmjs.org (npm package)](https://www.npmjs.com/package/@push.rocks/tapbundle) +* [gitlab.com (source)](https://gitlab.com/push.rocks/tapbundle) +* [github.com (source mirror)](https://github.com/push.rocks/tapbundle) +* [docs (typedoc)](https://push.rocks.gitlab.io/tapbundle/) ## Status for master Status Category | Status Badge -- | -- -GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/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) -npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/tapbundle)](https://lossless.cloud) -Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/tapbundle)](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/push.rocks/tapbundle/badges/master/coverage.svg)](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/push.rocks/tapbundle)](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/) 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 (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/tapbundle)](https://lossless.cloud) -BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/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) +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/@push.rocks/tapbundle)](https://lossless.cloud) +BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@push.rocks/tapbundle)](https://lossless.cloud) ## Usage @@ -31,8 +30,8 @@ A few words on TypeScript ### Included in this package -* tap compatible testing framework written in TypeScript -* `expect` and `expectAsync` from the package `@pushrocks/smartexpect` +- tap compatible testing framework written in TypeScript +- `expect` and `expectAsync` from the package `@pushrocks/smartexpect` ### A few words on tap @@ -59,9 +58,10 @@ const myTest2 = tap.test('my awesome test 2', async (tools) => { tap.test('my awesome test 3', async (tools) => { expect(true).toBeTrue(); // will not throw 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('milliSeconds').toBeGreaterThan(1000); + .property('milliSeconds') + .toBeGreaterThan(1000); }); const myTest4 = tap.testParallel('my awesome test 4', async (tools) => { @@ -82,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. -> 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) - -[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com) diff --git a/test/test.browser.nonci.ts b/test/test.browser.nonci.ts index d42ada0..d03f1a6 100644 --- a/test/test.browser.nonci.ts +++ b/test/test.browser.nonci.ts @@ -21,7 +21,10 @@ const test2 = tap.test('my second test', async (tools) => { const test3 = tap.test( 'my third test -> test2 should take longer than test1 and endure at least 1000ms', async () => { - expect((await test1.testPromise).hrtMeasurement.milliSeconds < (await test2).hrtMeasurement.milliSeconds).toBeTrue(); + expect( + (await test1.testPromise).hrtMeasurement.milliSeconds < + (await test2).hrtMeasurement.milliSeconds + ).toBeTrue(); expect((await test2.testPromise).hrtMeasurement.milliSeconds > 10).toBeTrue(); } ); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index ae7e791..631d171 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/tapbundle', - version: '5.0.14', + version: '5.0.15', description: 'tap bundled for tapbuffer' } diff --git a/ts/index.ts b/ts/index.ts index 2780eba..a23c3fc 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -4,7 +4,4 @@ export { webhelpers } from './webhelpers.js'; import { expect, expectAsync } from '@push.rocks/smartexpect'; -export { - expect, - expectAsync -} \ No newline at end of file +export { expect, expectAsync }; diff --git a/ts/tapbundle.classes.taptest.ts b/ts/tapbundle.classes.taptest.ts index 40638bb..1715e7c 100644 --- a/ts/tapbundle.classes.taptest.ts +++ b/ts/tapbundle.classes.taptest.ts @@ -9,9 +9,11 @@ import { HrtMeasurement } from '@push.rocks/smarttime'; // interfaces export type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout'; -export interface ITestFunction { (tapTools?: TapTools): Promise }; +export interface ITestFunction { + (tapTools?: TapTools): Promise; +} -export class TapTest { +export class TapTest { public description: string; public failureAllowed: boolean; public hrtMeasurement: HrtMeasurement; @@ -27,7 +29,11 @@ export class TapTest { /** * constructor */ - constructor(optionsArg: { description: string; testFunction: ITestFunction; parallel: boolean }) { + constructor(optionsArg: { + description: string; + testFunction: ITestFunction; + parallel: boolean; + }) { this.description = optionsArg.description; this.hrtMeasurement = new HrtMeasurement(); this.parallel = optionsArg.parallel; diff --git a/ts/webhelpers.ts b/ts/webhelpers.ts index b40023e..77d8fce 100644 --- a/ts/webhelpers.ts +++ b/ts/webhelpers.ts @@ -8,7 +8,7 @@ class WebHelpers { constructor() { const smartenv = new plugins.smartenv.Smartenv(); - if(smartenv.isBrowser) { + if (smartenv.isBrowser) { this.enable(); } } @@ -18,7 +18,7 @@ class WebHelpers { const webhelpers = await import('@open-wc/testing'); this.html = webhelpers.html; this.fixture = webhelpers.fixture; - }) + }); } }