diff --git a/playground/.gitignore b/playground/.gitignore index 3a3c26f..39e2e19 100644 --- a/playground/.gitignore +++ b/playground/.gitignore @@ -102,6 +102,7 @@ yarn.lock testApp coverage +/config/sync ############################ # Strapi diff --git a/playground/__tests__/cli.test.js b/playground/__tests__/cli.test.js index b5b3b93..322f416 100644 --- a/playground/__tests__/cli.test.js +++ b/playground/__tests__/cli.test.js @@ -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); + }); }); diff --git a/playground/package.json b/playground/package.json index 6af6628..3c84274 100644 --- a/playground/package.json +++ b/playground/package.json @@ -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" diff --git a/server/cli.js b/server/cli.js index f8c6273..c82b068 100644 --- a/server/cli.js +++ b/server/cli.js @@ -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);