Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
with:
node-version: 21
registry-url: https://registry.npmjs.org/
- run: npm run prepareToPublish
- run: npm run prepublishOnly
env:
RELEASE: ${{github.event.release.name}}
- run: npm publish
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/npm-test.yml → .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
- uses: oven-sh/setup-bun@v1
with:
bun-version: 1.1.4
- run: node --test **/test/**/[!b][!u][!n]*/**/*.js
- run: bun test **/test/**/bun/**/**

- run: npm run testWithCoverageCheck
env:
COVERAGE_MIN_PERCENT: ${{vars.coverage_min_percent}}
- run: bun run bunTestWithCoverageCheck
env:
COVERAGE_MIN_PERCENT: ${{vars.coverage_min_percent}}
File renamed without changes.
8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
"oop"
],
"scripts": {
"prepareToPublish": "node dist/prepareToPublish.js",
"test": "node --test **/test/**/[!b][!u][!n]*/**/*.js",
"testBun": "bun test **/test/**/bun/**/**"
"prepublishOnly": "node dist/prepublish.js",
"test": "node --test --experimental-test-coverage --test-reporter=spec **/test/**/[!b][!u][!n]*/**/*.js **/test/**/[!b][!u][!n]*/*.js",
"testWithCoverageCheck": "node src/test/static/coverageCheck.js",
"bunTest": "bun test --coverage **/test/**/bun/**/**",
"bunTestWithCoverageCheck": "bun src/test/static/bun/coverageCheck.js"
},
"author": {
"name": "volatilization",
Expand Down
6 changes: 2 additions & 4 deletions src/js/client/response/InputResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ module.exports = class InputResponse {
flush() {
try {
return new Promise((resolve, reject) => {
this.#inputStream.once('error', (e) =>
reject(new Error(e.message, {cause: 'INVALID_RESPONSE'}))
);
this.#inputStream.once('error', (e) => reject(new Error(e.message, {cause: 'INVALID_RESPONSE'})));

let chunks = [];
this.#inputStream.on('data', (chunk) => chunks.push(chunk));
Expand All @@ -30,7 +28,7 @@ module.exports = class InputResponse {
});

} catch (e) {
throw new Error(e.message, {cause: 'INVALID_RESPONSE'})
throw new Error(e.message, {cause: 'INVALID_RESPONSE'});
}
}

Expand Down
40 changes: 40 additions & 0 deletions src/test/static/bun/coverageCheck.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const testRunnerResult = Bun.spawnSync(["bun", "run", "bunTest"]);
console.log(testRunnerResult.stderr.toString());

const codeCoverageResultTableHeaderLine = testRunnerResult.stderr.toString()
.split('\n')
.filter(line => line.includes('Funcs'))
.filter(line => line.includes('Funcs'))
.filter(line => line.includes('Lines'))
.filter(line => line.includes('Uncovered Line'))
.findLast(line => line.length > 0);

if (codeCoverageResultTableHeaderLine == null) {
console.error('no code coverage result');
process.exit(2);
}

const coveragePercent = testRunnerResult.stderr.toString()
.split(codeCoverageResultTableHeaderLine)[1]
.split('\n')
.filter(line => line.includes('.js'))
.filter(line => line.includes('/bun/'))
.filter(line => !line.includes('/test/'))
.map(line => Number(line.split('|')[2].trim()))
.reduce((prevPercent, currPercent, currIndex, array) => {
if (currIndex === 0) {
return currPercent;
}
if (currIndex === (array.length - 1)) {
return (prevPercent + currPercent) / array.length;
}
return prevPercent + currPercent;
});

if (coveragePercent < Number(process.env.COVERAGE_MIN_PERCENT)) {
console.error(`${coveragePercent} is not enough coverage percent`);
process.exit(1);
}

console.log(`${coveragePercent} is enough coverage percent`);
process.exit(0);
31 changes: 31 additions & 0 deletions src/test/static/coverageCheck.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const execSync = require('child_process').execSync;

const testResult = execSync('npm run test').toString();
console.log(testResult);

const coveragePercent = testResult
.split('start of coverage report')[1]
.split('end of coverage report')[0]
.split('\n')
.filter(line => line.includes('.js'))
.filter(line => !line.includes('/bun/'))
.filter(line => !line.includes('/test/'))
.map(line => Number(line.split('|')[1].trim()))
.reduce((prevPercent, currPercent, currIndex, array) => {
if (currIndex === 0) {
return currPercent;
}
if (currIndex === (array.length - 1)) {
return (prevPercent + currPercent) / array.length;
}
return prevPercent + currPercent;
});

if (coveragePercent < Number(process.env.COVERAGE_MIN_PERCENT)) {
console.error(`${coveragePercent} is not enough coverage percent`);
process.exit(1);
}

console.log(`${coveragePercent} is enough coverage percent`);
process.exit(0);