Merge pull request #67 from goodhoko/feat-diff-exit-status

feat(CLI): Exit with 1 when diff is not empty.
pull/77/head
Boaz Poolman 2022-09-06 21:39:05 +02:00 committed by GitHub
commit bfd571a7a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 3 deletions

View File

@ -102,6 +102,7 @@ yarn.lock
testApp
coverage
/config/sync
############################
# Strapi

View File

@ -6,6 +6,13 @@ const exec = util.promisify(require('child_process').exec);
jest.setTimeout(20000);
describe('Test the config-sync CLI', () => {
afterAll(async () => {
// Remove the generated files and the DB.
await exec('rm -rf config/sync');
await exec('rm -rf .tmp');
});
test('Export', async () => {
const { stdout } = await exec('yarn cs export -y');
expect(stdout).toContain('Finished export');
@ -19,4 +26,16 @@ describe('Test the config-sync CLI', () => {
const { stdout } = await exec('yarn cs diff');
expect(stdout).toContain('No differences between DB and sync directory');
});
test('Non-empty diff returns 1', async () => {
await exec('rm -rf config/sync/admin-role.strapi-author.json');
// Work around Jest not supporting custom error matching.
// https://github.com/facebook/jest/issues/8140
let error;
try {
await exec('yarn cs diff');
} catch(e) {
error = e;
}
expect(error).toHaveProperty('code', 1);
});
});

View File

@ -19,7 +19,7 @@
"@strapi/plugin-users-permissions": "^4.0.0",
"@strapi/strapi": "^4.0.0",
"sqlite3": "5.0.2",
"strapi-plugin-config-sync": "boazpoolman/strapi-plugin-config-sync"
"strapi-plugin-config-sync": "./.."
},
"author": {
"name": "A Strapi developer"

View File

@ -269,7 +269,7 @@ program
{ color: true },
));
process.exit(0);
process.exit(1);
}
// Init table.
@ -283,7 +283,7 @@ program
// Print table.
console.log(table.toString());
process.exit(0);
process.exit(1);
});
program.parseAsync(process.argv);