You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gristlabs_grist-core/test/server/generateInitialDocSql.ts

42 lines
1.5 KiB

import { getAppRoot } from 'app/server/lib/places';
import { createTmpDir } from 'test/server/docTools';
import * as testUtils from 'test/server/testUtils';
import { assert } from 'chai';
import * as childProcess from 'child_process';
import * as fse from 'fs-extra';
import * as path from 'path';
import * as util from 'util';
const execFile = util.promisify(childProcess.execFile);
describe('generateInitialDocSql', function() {
this.timeout(10000);
let tmpDir: string;
testUtils.setTmpLogLevel('fatal');
before(async function() {
tmpDir = await createTmpDir();
});
it('confirms schema and sql files are up to date (run "yarn run generate:schema:ts" on failure)', async function() {
let root = getAppRoot();
if (await fse.pathExists(path.join(root, 'core'))) {
root = path.join(root, 'core');
}
const newSchemaTs = path.join(tmpDir, 'schema.ts');
const newSqlTs = path.join(tmpDir, 'sql.ts');
const currentSchemaTs = path.join(root, 'app/common/schema.ts');
const currentSqlTs = path.join(root, 'app/server/lib/initialDocSql.ts');
await execFile(path.join(getAppRoot(), 'buildtools/update_schema.sh'), [
newSchemaTs, newSqlTs,
], { env: process.env });
assert.equal((await fse.readFile(newSchemaTs)).toString(),
(await fse.readFile(currentSchemaTs)).toString());
assert.equal((await fse.readFile(newSqlTs)).toString(),
(await fse.readFile(currentSqlTs)).toString());
});
});