Run tests in pre-commit

This commit is contained in:
David Ibia
2026-01-12 13:45:44 +01:00
parent 665c4adf69
commit a1c53aeb5e
4 changed files with 44 additions and 11 deletions

1
.husky/pre-commit Normal file
View File

@@ -0,0 +1 @@
npm test

21
package-lock.json generated
View File

@@ -1,18 +1,19 @@
{
"name": "envsitter",
"version": "0.1.0",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "envsitter",
"version": "0.1.0",
"version": "0.0.1",
"license": "MIT",
"bin": {
"envsitter": "dist/cli.js"
},
"devDependencies": {
"@types/node": "^22.10.2",
"husky": "^9.1.7",
"typescript": "^5.7.3"
}
},
@@ -26,6 +27,22 @@
"undici-types": "~6.21.0"
}
},
"node_modules/husky": {
"version": "9.1.7",
"resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
"integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
"license": "MIT",
"bin": {
"husky": "bin.js"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
}
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",

View File

@@ -20,10 +20,12 @@
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"test": "npm run build && node scripts/run-tests.mjs"
"test": "npm run build && node scripts/run-tests.mjs",
"prepare": "husky"
},
"devDependencies": {
"@types/node": "^22.10.2",
"husky": "^9.1.7",
"typescript": "^5.7.3"
}
}

View File

@@ -20,6 +20,12 @@ test('resolvePepper reads from env when set', async () => {
});
test('resolvePepper creates a pepper file when missing', async () => {
const prevEnvSitterPepper = process.env.ENVSITTER_PEPPER;
const prevEnvSitterPepperAlt = process.env.ENV_SITTER_PEPPER;
delete process.env.ENVSITTER_PEPPER;
delete process.env.ENV_SITTER_PEPPER;
try {
const dir = await mkdtemp(join(tmpdir(), 'envsitter-'));
const pepperPath = join(dir, 'pepper');
@@ -30,4 +36,11 @@ test('resolvePepper creates a pepper file when missing', async () => {
const persisted = (await readFile(pepperPath, 'utf8')).trim();
assert.ok(persisted.length > 0);
} finally {
if (prevEnvSitterPepper === undefined) delete process.env.ENVSITTER_PEPPER;
else process.env.ENVSITTER_PEPPER = prevEnvSitterPepper;
if (prevEnvSitterPepperAlt === undefined) delete process.env.ENV_SITTER_PEPPER;
else process.env.ENV_SITTER_PEPPER = prevEnvSitterPepperAlt;
}
});