diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8830bb1..a3b27ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,25 +17,17 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - node-version: [lts/*, 17.x, 16.x, 14.x] + node-version: [24.x, 22.x] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - run: npm install - # manually install peerdeps for node 14 - - run: npm i seneca seneca-promisify seneca-entity @seneca/entity-util - run: npm run prettier - run: npm run build --if-present - run: npm test - - - name: Coveralls - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: ./coverage/lcov.info diff --git a/LICENSE b/LICENSE index 7230309..be1b3cd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Seneca Microservices Framework +Copyright (c) 2026 Seneca Microservices Framework Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/dist-test/basic.messages.d.ts b/dist-test/basic.messages.d.ts new file mode 100644 index 0000000..859bac9 --- /dev/null +++ b/dist-test/basic.messages.d.ts @@ -0,0 +1,9 @@ +declare const _default: { + print: boolean + pattern: string + allow: { + missing: boolean + } + calls: never[] +} +export default _default diff --git a/dist-test/basic.messages.js b/dist-test/basic.messages.js new file mode 100644 index 0000000..7c37b65 --- /dev/null +++ b/dist-test/basic.messages.js @@ -0,0 +1,38 @@ +'use strict' +// Basic progressral: sent email invite to a friend +Object.defineProperty(exports, '__esModule', { value: true }) +exports.default = { + print: false, + pattern: 'sys:progress', + allow: { missing: true }, + calls: [ + /* + { + name: 'create-alice', + pattern: 'create:entry', // call { biz:progress, create:entry, ...params } + params: { + user_id: 'u01', + kind: 'standard', // avoid using 'type', 'kind' has fewer conflicts + email: 'alice@example.com', + }, + out: { + ok: true, + entry: { + user_id: 'u01', // _id suffix for foreign keys + kind: 'standard', + email: 'alice@example.com', + }, + occur: { + user_id: 'u01', + entry_kind: 'standard', + kind: 'create', + email: 'alice@example.com', + } + }, + }, + */ + // Print entire database + // { print: true, pattern: 'biz:null,role:mem-store,cmd:dump' }, + ], +} +//# sourceMappingURL=basic.messages.js.map diff --git a/dist-test/basic.messages.js.map b/dist-test/basic.messages.js.map new file mode 100644 index 0000000..fa1a9f8 --- /dev/null +++ b/dist-test/basic.messages.js.map @@ -0,0 +1 @@ +{"version":3,"file":"basic.messages.js","sourceRoot":"","sources":["../test/basic.messages.ts"],"names":[],"mappings":";AAAA,mDAAmD;;AAEnD,kBAAe;IACb,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAExB,KAAK,EAAE;IACL;;;;;;;;;;;;;;;;;;;;;;;;MAwBE;IACF,wBAAwB;IACxB,gEAAgE;KACjE;CACF,CAAA"} \ No newline at end of file diff --git a/dist-test/progress.test.d.ts b/dist-test/progress.test.d.ts new file mode 100644 index 0000000..336ce12 --- /dev/null +++ b/dist-test/progress.test.d.ts @@ -0,0 +1 @@ +export {} diff --git a/dist-test/progress.test.js b/dist-test/progress.test.js new file mode 100644 index 0000000..bbaf05e --- /dev/null +++ b/dist-test/progress.test.js @@ -0,0 +1,173 @@ +'use strict' +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod } + } +Object.defineProperty(exports, '__esModule', { value: true }) +/* Copyright © 2026 Seneca Project Contributors, MIT License. */ +const node_test_1 = require('node:test') +const code_1 = require('@hapi/code') +const seneca_1 = __importDefault(require('seneca')) +const seneca_msg_test_1 = __importDefault(require('seneca-msg-test')) +// import { Maintain } from '@seneca/maintain' +const __1 = __importDefault(require('..')) +const __2 = __importDefault(require('..')) +const basic_messages_1 = __importDefault(require('./basic.messages')) +;(0, node_test_1.describe)('progress', () => { + ;(0, node_test_1.test)('happy', async () => { + // console.log(Progress) + ;(0, code_1.expect)(__2.default).exist() + ;(0, code_1.expect)(__1.default).exist() + const seneca = (0, seneca_1.default)({ legacy: false }) + .test() + .use('promisify') + .use('entity') + .use(__2.default) + await seneca.ready() + }) + ;(0, node_test_1.test)('simple', async () => { + const seneca = await makeSeneca() + let p0 = await seneca.post('sys:progress,create:progress', { + kind: 'simple', + }) + // console.log('p0', p0) + ;(0, code_1.expect)(p0.ok).true() + ;(0, code_1.expect)(p0.item).contains({ + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 0, + status: 'active', + }) + let p0g0 = await seneca.post('sys:progress,get:progress', { + id: p0.item.id, + }) + // console.log('p0g0', p0g0) + ;(0, code_1.expect)(p0g0.ok).true() + ;(0, code_1.expect)(p0g0.item).contains({ + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 0, + status: 'active', + }) + let p0g1 = await seneca.post('sys:progress,get:progress', { + id: p0.item.id, + full: true, + }) + // console.log('p0g1', p0g1) + ;(0, code_1.expect)(p0g1.ok).true() + ;(0, code_1.expect)(p0g1.item).contains({ + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 0, + status: 'active', + }) + ;(0, code_1.expect)(p0g1.list).equal([]) + let p0u0 = await seneca.post('sys:progress,update:progress', { + id: p0.item.id, + how: 'step', + }) + // console.log('p0u0', p0u0) + ;(0, code_1.expect)(p0u0.ok).true() + ;(0, code_1.expect)(p0u0.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + ;(0, code_1.expect)(p0u0.entry).includes({ + entity$: '-/sys/progressentry', + }) + ;(0, code_1.expect)(p0u0.list).equal([]) + let p0u0g0 = await seneca.post('sys:progress,get:progress', { + id: p0u0.item.id, + }) + // console.log('p0u0g0', p0u0g0) + ;(0, code_1.expect)(p0u0g0.ok).true() + ;(0, code_1.expect)(p0u0g0.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + ;(0, code_1.expect)(p0u0g0.list).equal([]) + let p0u0g1 = await seneca.post('sys:progress,get:progress', { + id: p0u0.item.id, + full: true, + }) + // console.log('p0u0g1', p0u0g1) + ;(0, code_1.expect)(p0u0g1.ok).true() + ;(0, code_1.expect)(p0u0g1.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + ;(0, code_1.expect)(p0u0g1.list[0]).includes({ + entity$: '-/sys/progressentry', + }) + let p0u1 = await seneca.post('sys:progress,update:progress', { + id: p0.item.id, + how: 'val', + val: 95, + note: 'aaa', + full: true, + }) + // console.log('p0u1', p0u1) + ;(0, code_1.expect)(p0u1.ok).true() + ;(0, code_1.expect)(p0u1.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 100, + status: 'active', + }) + ;(0, code_1.expect)(p0u1.entry).includes({ + entity$: '-/sys/progressentry', + note: 'aaa', + }) + ;(0, code_1.expect)(p0u1.list[0]).includes({ + entity$: '-/sys/progressentry', + }) + ;(0, code_1.expect)(p0u1.list[1]).includes({ + entity$: '-/sys/progressentry', + note: 'aaa', + }) + }) + ;(0, node_test_1.test)('basic.messages', async () => { + const seneca = await makeSeneca() + await (0, seneca_msg_test_1.default)(seneca, basic_messages_1.default)() + }) + // test('maintain', Maintain) +}) +async function makeSeneca(options) { + options = options || {} + const seneca = (0, seneca_1.default)({ legacy: false }) + .test() + .use('promisify') + .use('entity') + .use('entity-util', { when: { active: true, human: 'y' } }) + .use(__2.default, options.progress) + await seneca.ready() + // print all message patterns + // console.log(seneca.list()) + return seneca +} +//# sourceMappingURL=progress.test.js.map diff --git a/dist-test/progress.test.js.map b/dist-test/progress.test.js.map new file mode 100644 index 0000000..1ec7905 --- /dev/null +++ b/dist-test/progress.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"progress.test.js","sourceRoot":"","sources":["../test/progress.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Progress.d.ts b/dist/Progress.d.ts index c9b5663..0bdc6dd 100644 --- a/dist/Progress.d.ts +++ b/dist/Progress.d.ts @@ -9,3 +9,4 @@ declare function Progress(this: any, options: ProgressOptions): { exports: {}; }; export default Progress; +//# sourceMappingURL=Progress.d.ts.map \ No newline at end of file diff --git a/dist/Progress.d.ts.map b/dist/Progress.d.ts.map new file mode 100644 index 0000000..67db3b8 --- /dev/null +++ b/dist/Progress.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../src/Progress.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAUD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAiB9C,iBAAS,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe;;EA2QpD;AAOD,eAAe,QAAQ,CAAA"} \ No newline at end of file diff --git a/dist/Progress.js b/dist/Progress.js index e1821e5..ec09471 100644 --- a/dist/Progress.js +++ b/dist/Progress.js @@ -1,5 +1,5 @@ "use strict"; -/* Copyright © 2022 Seneca Project Contributors, MIT License. */ +/* Copyright © 2026 Seneca Project Contributors, MIT License. */ Object.defineProperty(exports, "__esModule", { value: true }); // Default options. const defaults = { @@ -23,33 +23,32 @@ function Progress(options) { .message('get:progress', params.GetProgress, msgGetProgress) .message('list:progress', params.ListProgress, msgListProgress); // TODO: seneca.prepare should not be affected by seneca.fix - seneca - .prepare(prepare); + seneca.prepare(prepare); // class SkipNumber extends Number { skip = true } - // Deliberately not importing Gubu, instead using Gubu expressions as an example. + // Deliberately not importing Gubu, instead using Gubu expressions as an example. function makeParams() { return { CreateProgress: { - kind: String, - id$: Skip(String), - step: Skip(0), - start: Skip(0), - end: Skip(0), - code: Skip(String), - owner: Skip(String), - ref: Skip(String), - user_id: Skip(String), - custom: Skip(Object), - note: Skip(String), + kind: String, // Categorize this progress instance, required. + id$: Skip(String), // Custom id, otherwise generated entity id. + step: Skip(0), // Step size; Undefined (skipped) means use default from options. + start: Skip(0), // Start value; Undefined (skipped) means use default from options. + end: Skip(0), // Start value; Undefined (skipped) means use default from options. + code: Skip(String), // Custom code string. + owner: Skip(String), // Reference to the "owner" (E.g. an entity id). + ref: Skip(String), // Reference to an associated entity. + user_id: Skip(String), // Reference to an associated user. + custom: Skip(Object), // Custom data. + note: Skip(String), // Custom note string. expire: Skip(Number), // Expires in millis fron now. }, UpdateProgress: { id: String, - how: Exact('step', 'val', 'set'), + how: Exact('step', 'val', 'set'), // step=>incr by step value, val=>custom value. val: Skip(Number), - status: Skip(String), - code: Skip(String), - custom: Skip(Object), + status: Skip(String), // Set status manually. + code: Skip(String), // Custom code string for Entry. + custom: Skip(Object), // Custom data for Entry. note: Skip(String), // Custom note string for Entry. }, GetProgress: { @@ -150,7 +149,7 @@ function Progress(options) { } entry = await entry.save$({ status: progress.status, - val: progress.val + val: progress.val, }); progress = await progress.save$(); out.item = progress; @@ -204,7 +203,7 @@ function Progress(options) { if (full) { const eq = { progress_id: progress.id, - sort$: { 'when': 1 } + sort$: { when: 1 }, }; const list = await makeEntryEnt(seneca).list$(eq); return list; @@ -213,7 +212,7 @@ function Progress(options) { } async function checkExpired(progress) { if ('active' == progress.status && - Date.now() < (progress.when + progress.expire)) { + Date.now() < progress.when + progress.expire) { progress.status = 'expired'; await progress.save$(); } @@ -226,7 +225,7 @@ function Progress(options) { return seneca.entity('sys/progressentry'); } return { - exports: {} + exports: {}, }; } Object.assign(Progress, { defaults }); diff --git a/dist/Progress.js.map b/dist/Progress.js.map index b79cbda..6d8a60a 100644 --- a/dist/Progress.js.map +++ b/dist/Progress.js.map @@ -1 +1 @@ -{"version":3,"file":"Progress.js","sourceRoot":"","sources":["../src/Progress.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Progress.js","sourceRoot":"","sources":["../src/Progress.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/ProgressDoc.d.ts b/dist/ProgressDoc.d.ts index 963d17c..624e21c 100644 --- a/dist/ProgressDoc.d.ts +++ b/dist/ProgressDoc.d.ts @@ -1,2 +1,3 @@ declare const docs: {}; export default docs; +//# sourceMappingURL=ProgressDoc.d.ts.map \ No newline at end of file diff --git a/dist/ProgressDoc.d.ts.map b/dist/ProgressDoc.d.ts.map new file mode 100644 index 0000000..17da951 --- /dev/null +++ b/dist/ProgressDoc.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ProgressDoc.d.ts","sourceRoot":"","sources":["../src/ProgressDoc.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,IAAI,IAAK,CAAA;AAEf,eAAe,IAAI,CAAA"} \ No newline at end of file diff --git a/dist/ProgressDoc.js.map b/dist/ProgressDoc.js.map index 5f82cf3..03401bc 100644 --- a/dist/ProgressDoc.js.map +++ b/dist/ProgressDoc.js.map @@ -1 +1 @@ -{"version":3,"file":"ProgressDoc.js","sourceRoot":"","sources":["../src/ProgressDoc.ts"],"names":[],"mappings":";AAAA,gEAAgE;;AAEhE,MAAM,IAAI,GAAG,EACZ,CAAA;AAED,kBAAe,IAAI,CAAA;AAEnB,IAAI,WAAW,KAAK,OAAO,MAAM,EAAE;IACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;CACtB"} \ No newline at end of file +{"version":3,"file":"ProgressDoc.js","sourceRoot":"","sources":["../src/ProgressDoc.ts"],"names":[],"mappings":";AAAA,gEAAgE;;AAEhE,MAAM,IAAI,GAAG,EAAE,CAAA;AAEf,kBAAe,IAAI,CAAA;AAEnB,IAAI,WAAW,KAAK,OAAO,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;AACvB,CAAC"} \ No newline at end of file diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index a75401e..0000000 --- a/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - transform: { - '^.+\\.tsx?$': ['esbuild-jest', { sourcemap: true }], - }, - testEnvironment: 'node', - testMatch: ['**/test/**/*.test.ts'], - watchPathIgnorePatterns: ['dist\\/'], - collectCoverageFrom: ['src/**/*.ts'], - coverageProvider: 'v8', -} diff --git a/package.json b/package.json index b5826ca..ac04404 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,13 @@ }, "scripts": { "prettier": "prettier --write .", - "test": "jest --coverage", - "test-some": "jest -t", - "test-watch": "jest --coverage --watchAll", - "watch": "tsc -w -d", - "build": "tsc -d", + "test": "node --enable-source-maps --test \"dist-test/**/*.test.js\"", + "test-some": "node --enable-source-maps --test-name-pattern=\"$TEST_PATTERN\" --test \"dist-test/**/*.test.js\"", + "watch": "tsc --build src test -w", + "build": "tsc --build src test", "doc": "seneca-doc", - "clean": "rm -rf node_modules yarn.lock package-lock.json dist", - "reset": "npm run clean && npm i && npm test", + "clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json", + "reset": "npm run clean && npm i && npm run build && npm test", "repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag v$REPO_VERSION && git push --tags;", "repo-publish": "npm run clean && npm i && npm run repo-publish-quick", "repo-publish-quick": "npm run build && npm run test && npm run doc && npm run repo-tag && npm publish --access public --registry https://registry.npmjs.org " @@ -36,24 +35,22 @@ "LICENSE" ], "engines": { - "node": ">=16" + "node": ">=22" }, "devDependencies": { - "@seneca/maintain": "^0.0.22", - "@types/jest": "^28.1.8", - "@types/node": "^18.7.13", - "esbuild": "^0.15.5", - "esbuild-jest": "^0.5.0", - "jest": "^29.0.0", - "prettier": "2.7.1", + "@hapi/code": "^9.0.3", + "@seneca/maintain": "^0.1.0", + "@types/node": "^25.3.2", + "prettier": "3.8.1", "seneca-doc": "^2.1.3", - "seneca-msg-test": "^3.4.0", - "typescript": "^4.7.4" + "seneca-msg-test": "^4.1.0", + "typescript": "^5.9.3" }, "peerDependencies": { - "@seneca/entity-util": ">=1", - "seneca": ">=3", - "seneca-entity": ">=18", + "@seneca/entity-util": ">=3", + "gubu": ">=9", + "seneca": ">=3||>=4.0.0-rc2", + "seneca-entity": ">=26", "seneca-promisify": ">=3" } } diff --git a/src/Progress.ts b/src/Progress.ts index 43d2dc5..aa082f7 100644 --- a/src/Progress.ts +++ b/src/Progress.ts @@ -1,5 +1,4 @@ -/* Copyright © 2022 Seneca Project Contributors, MIT License. */ - +/* Copyright © 2026 Seneca Project Contributors, MIT License. */ type Options = { debug: boolean @@ -16,10 +15,8 @@ const defaults = { end: 100, } - export type ProgressOptions = Partial - type Out = { ok: boolean why?: string @@ -35,7 +32,6 @@ const INIT_OUT = { why: 'unknown', } - function Progress(this: any, options: ProgressOptions) { const seneca: any = this const { Skip, Exact, Default, Min } = seneca.valid @@ -50,12 +46,11 @@ function Progress(this: any, options: ProgressOptions) { .message('list:progress', params.ListProgress, msgListProgress) // TODO: seneca.prepare should not be affected by seneca.fix - seneca - .prepare(prepare) + seneca.prepare(prepare) // class SkipNumber extends Number { skip = true } - // Deliberately not importing Gubu, instead using Gubu expressions as an example. + // Deliberately not importing Gubu, instead using Gubu expressions as an example. function makeParams() { return { CreateProgress: { @@ -95,7 +90,6 @@ function Progress(this: any, options: ProgressOptions) { } } - async function msgCreateProgress(this: any, msg: any) { const seneca = this @@ -136,7 +130,6 @@ function Progress(this: any, options: ProgressOptions) { return out } - async function msgUpdateProgress(this: any, msg: any) { const seneca = this const out: Out = { ...INIT_OUT } @@ -160,14 +153,11 @@ function Progress(this: any, options: ProgressOptions) { let stepval = 0 if ('step' === how) { stepval = progress.step - } - else if ('val' === how) { + } else if ('val' === how) { stepval = entryval - } - else if ('set' === how) { + } else if ('set' === how) { stepval = 0 - } - else { + } else { out.why = 'invalid-how' out.details = { how } return out @@ -196,8 +186,7 @@ function Progress(this: any, options: ProgressOptions) { // Can't go beyond end. if (0 < progress.end && progress.end < progress.val) { progress.val = progress.end - } - else if (progress.end < 0 && progress.val < progress.end) { + } else if (progress.end < 0 && progress.val < progress.end) { progress.val = progress.end } @@ -207,7 +196,7 @@ function Progress(this: any, options: ProgressOptions) { entry = await entry.save$({ status: progress.status, - val: progress.val + val: progress.val, }) progress = await progress.save$() @@ -218,15 +207,13 @@ function Progress(this: any, options: ProgressOptions) { delete out.why out.ok = true - } - else { + } else { out.why = 'not-found' } return out } - async function msgGetProgress(this: any, msg: any) { const seneca = this const out: Out = { ...INIT_OUT } @@ -245,15 +232,13 @@ function Progress(this: any, options: ProgressOptions) { delete out.why out.ok = true - } - else { + } else { out.why = 'not-found' } return out } - async function msgListProgress(this: any, msg: any) { const seneca = this const out: Out = { ...INIT_OUT } @@ -276,17 +261,15 @@ function Progress(this: any, options: ProgressOptions) { return out } - async function prepare(this: any) { const seneca = this } - async function listEntries(seneca: any, full: boolean, progress: any) { if (full) { const eq = { progress_id: progress.id, - sort$: { 'when': 1 } + sort$: { when: 1 }, } const list = await makeEntryEnt(seneca).list$(eq) return list @@ -294,11 +277,10 @@ function Progress(this: any, options: ProgressOptions) { return [] } - async function checkExpired(progress: any) { if ( 'active' == progress.status && - Date.now() < (progress.when + progress.expire) + Date.now() < progress.when + progress.expire ) { progress.status = 'expired' await progress.save$() @@ -306,7 +288,6 @@ function Progress(this: any, options: ProgressOptions) { return progress } - function makeProgressEnt(seneca: any) { return seneca.entity('sys/progress') } @@ -315,14 +296,11 @@ function Progress(this: any, options: ProgressOptions) { return seneca.entity('sys/progressentry') } - return { - exports: { - } + exports: {}, } } - Object.assign(Progress, { defaults }) // Prevent name mangling diff --git a/src/ProgressDoc.ts b/src/ProgressDoc.ts index 9ab134b..e22c487 100644 --- a/src/ProgressDoc.ts +++ b/src/ProgressDoc.ts @@ -1,7 +1,6 @@ /* Copyright © 2023 Seneca Project Contributors, MIT License. */ -const docs = { -} +const docs = {} export default docs diff --git a/src/tsconfig.json b/src/tsconfig.json new file mode 100644 index 0000000..f0b196f --- /dev/null +++ b/src/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "sourceMap": true, + "module": "nodenext", + "noEmitOnError": true, + "outDir": "../dist", + "resolveJsonModule": true, + "rootDir": ".", + "strict": true, + "target": "ES2022", + "composite": true, + "declaration": true, + "declarationMap": true + } +} diff --git a/test/basic.messages.ts b/test/basic.messages.ts index e8ded59..2330f34 100644 --- a/test/basic.messages.ts +++ b/test/basic.messages.ts @@ -31,10 +31,7 @@ export default { }, }, */ - // Print entire database // { print: true, pattern: 'biz:null,role:mem-store,cmd:dump' }, - ], } - diff --git a/test/progress.test.ts b/test/progress.test.ts index ef7655b..4654c9d 100644 --- a/test/progress.test.ts +++ b/test/progress.test.ts @@ -1,20 +1,21 @@ -/* Copyright © 2023 Seneca Project Contributors, MIT License. */ +/* Copyright © 2026 Seneca Project Contributors, MIT License. */ +import { describe, test } from 'node:test' +import { expect } from '@hapi/code' import Seneca from 'seneca' import SenecaMsgTest from 'seneca-msg-test' // import { Maintain } from '@seneca/maintain' -import ProgressDoc from '../src/ProgressDoc' -import Progress from '../src/Progress' +import ProgressDoc from '..' +import Progress from '..' import BasicMessages from './basic.messages' - describe('progress', () => { test('happy', async () => { // console.log(Progress) - expect(Progress).toBeDefined() - expect(ProgressDoc).toBeDefined() + expect(Progress).exist() + expect(ProgressDoc).exist() const seneca = Seneca({ legacy: false }) .test() .use('promisify') @@ -23,14 +24,15 @@ describe('progress', () => { await seneca.ready() }) - test('simple', async () => { const seneca = await makeSeneca() - let p0 = await seneca.post('sys:progress,create:progress', { kind: 'simple' }) + let p0 = await seneca.post('sys:progress,create:progress', { + kind: 'simple', + }) // console.log('p0', p0) - expect(p0.ok).toEqual(true) - expect(p0.item).toMatchObject({ + expect(p0.ok).true() + expect(p0.item).includes({ kind: 'simple', step: 10, start: 0, @@ -39,10 +41,12 @@ describe('progress', () => { status: 'active', }) - let p0g0 = await seneca.post('sys:progress,get:progress', { id: p0.item.id }) + let p0g0 = await seneca.post('sys:progress,get:progress', { + id: p0.item.id, + }) // console.log('p0g0', p0g0) - expect(p0g0.ok).toEqual(true) - expect(p0g0.item).toMatchObject({ + expect(p0g0.ok).true() + expect(p0g0.item).includes({ kind: 'simple', step: 10, start: 0, @@ -51,10 +55,13 @@ describe('progress', () => { status: 'active', }) - let p0g1 = await seneca.post('sys:progress,get:progress', { id: p0.item.id, full: true }) + let p0g1 = await seneca.post('sys:progress,get:progress', { + id: p0.item.id, + full: true, + }) // console.log('p0g1', p0g1) - expect(p0g1.ok).toEqual(true) - expect(p0g1.item).toMatchObject({ + expect(p0g1.ok).true() + expect(p0g1.item).includes({ kind: 'simple', step: 10, start: 0, @@ -62,108 +69,102 @@ describe('progress', () => { val: 0, status: 'active', }) - expect(p0g1.list).toEqual([]) + expect(p0g1.list).equal([]) - let p0u0 = await seneca.post('sys:progress,update:progress', - { id: p0.item.id, how: 'step' }) + let p0u0 = await seneca.post('sys:progress,update:progress', { + id: p0.item.id, + how: 'step', + }) // console.log('p0u0', p0u0) - expect(p0u0).toMatchObject({ - ok: true, - item: { - 'entity$': '-/sys/progress', - kind: 'simple', - step: 10, - start: 0, - end: 100, - val: 10, - status: 'active', - }, - entry: { - 'entity$': '-/sys/progressentry', - }, - list: [] - }) - - let p0u0g0 = await seneca.post('sys:progress,get:progress', { id: p0u0.item.id }) + expect(p0u0.ok).true() + expect(p0u0.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + expect(p0u0.entry).includes({ + entity$: '-/sys/progressentry', + }) + expect(p0u0.list).equal([]) + + let p0u0g0 = await seneca.post('sys:progress,get:progress', { + id: p0u0.item.id, + }) // console.log('p0u0g0', p0u0g0) - expect(p0u0g0).toMatchObject({ - ok: true, - item: { - 'entity$': '-/sys/progress', - kind: 'simple', - step: 10, - start: 0, - end: 100, - val: 10, - status: 'active', - }, - list: [] - }) - - let p0u0g1 = await seneca.post('sys:progress,get:progress', - { id: p0u0.item.id, full: true }) + expect(p0u0g0.ok).true() + expect(p0u0g0.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + expect(p0u0g0.list).equal([]) + + let p0u0g1 = await seneca.post('sys:progress,get:progress', { + id: p0u0.item.id, + full: true, + }) // console.log('p0u0g1', p0u0g1) - expect(p0u0g1).toMatchObject({ - ok: true, - item: { - 'entity$': '-/sys/progress', - kind: 'simple', - step: 10, - start: 0, - end: 100, - val: 10, - status: 'active', - }, - list: [ - { - 'entity$': '-/sys/progressentry', - } - ] - }) - - let p0u1 = await seneca.post('sys:progress,update:progress', - { id: p0.item.id, how: 'val', val: 95, note: 'aaa', full: true }) + expect(p0u0g1.ok).true() + expect(p0u0g1.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 10, + status: 'active', + }) + expect(p0u0g1.list[0]).includes({ + entity$: '-/sys/progressentry', + }) + + let p0u1 = await seneca.post('sys:progress,update:progress', { + id: p0.item.id, + how: 'val', + val: 95, + note: 'aaa', + full: true, + }) // console.log('p0u1', p0u1) - expect(p0u1).toMatchObject({ - ok: true, - item: { - 'entity$': '-/sys/progress', - kind: 'simple', - step: 10, - start: 0, - end: 100, - val: 100, - status: 'active', - }, - entry: { - 'entity$': '-/sys/progressentry', - note: 'aaa', - }, - list: [ - { - 'entity$': '-/sys/progressentry', - }, - { - 'entity$': '-/sys/progressentry', - note: 'aaa', - } - ] + expect(p0u1.ok).true() + expect(p0u1.item).includes({ + entity$: '-/sys/progress', + kind: 'simple', + step: 10, + start: 0, + end: 100, + val: 100, + status: 'active', + }) + expect(p0u1.entry).includes({ + entity$: '-/sys/progressentry', + note: 'aaa', + }) + expect(p0u1.list[0]).includes({ + entity$: '-/sys/progressentry', + }) + expect(p0u1.list[1]).includes({ + entity$: '-/sys/progressentry', + note: 'aaa', }) }) - test('basic.messages', async () => { const seneca = await makeSeneca() await SenecaMsgTest(seneca, BasicMessages)() }) - - - // test('maintain', Maintain) }) - async function makeSeneca(options?: any) { options = options || {} const seneca = Seneca({ legacy: false }) @@ -180,4 +181,3 @@ async function makeSeneca(options?: any) { return seneca } - diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..5c4cc93 --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "module": "nodenext", + "noEmitOnError": true, + "outDir": "../dist-test", + "rootDir": ".", + "resolveJsonModule": true, + "sourceMap": true, + "strict": true, + "target": "ES2022", + "composite": true + } +} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 3b5809e..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "esModuleInterop": true, - "sourceMap": true, - "isolatedModules": true, - "module": "commonjs", - "noEmitOnError": true, - "outDir": "dist", - "resolveJsonModule": true, - "rootDir": "src", - "strict": true, - "target": "ES2019" - }, - "exclude": ["test", "dist", "node_modules"] -}