Skip to content

Commit 0bae20d

Browse files
committed
test: update cli tests
1 parent 8e89c88 commit 0bae20d

File tree

5 files changed

+26
-28
lines changed

5 files changed

+26
-28
lines changed

packages/cli/test/check.test.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,12 @@ describe('CLI validate command test', () => {
8383

8484
it('should validate schema with syntax errors', () => {
8585
const modelWithSyntaxError = `
86-
datasource db {
87-
provider = "sqlite"
88-
url = "file:./dev.db"
89-
}
90-
9186
model User {
9287
id String @id @default(cuid())
9388
email String @unique
9489
// Missing closing brace - syntax error
9590
`;
96-
const workDir = createProject(modelWithSyntaxError, false);
91+
const workDir = createProject(modelWithSyntaxError);
9792

9893
// Should throw an error due to syntax error
9994
expect(() => runCli('check', workDir)).toThrow();

packages/cli/test/db.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ model User {
1111

1212
describe('CLI db commands test', () => {
1313
it('should generate a database with db push', () => {
14-
const workDir = createProject(model);
14+
const workDir = createProject(model, { provider: 'sqlite' });
1515
runCli('db push', workDir);
16-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
16+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
1717
});
1818

1919
it('should seed the database with db seed with seed script', () => {
20-
const workDir = createProject(model);
20+
const workDir = createProject(model, { provider: 'sqlite' });
2121
const pkgJson = JSON.parse(fs.readFileSync(path.join(workDir, 'package.json'), 'utf8'));
2222
pkgJson.zenstack = {
2323
seed: 'node seed.js',
@@ -36,7 +36,7 @@ fs.writeFileSync('seed.txt', 'success');
3636
});
3737

3838
it('should seed the database after migrate reset', () => {
39-
const workDir = createProject(model);
39+
const workDir = createProject(model, { provider: 'sqlite' });
4040
const pkgJson = JSON.parse(fs.readFileSync(path.join(workDir, 'package.json'), 'utf8'));
4141
pkgJson.zenstack = {
4242
seed: 'node seed.js',
@@ -55,7 +55,7 @@ fs.writeFileSync('seed.txt', 'success');
5555
});
5656

5757
it('should skip seeding the database without seed script', () => {
58-
const workDir = createProject(model);
58+
const workDir = createProject(model, { provider: 'sqlite' });
5959
runCli('db seed', workDir);
6060
});
6161
});

packages/cli/test/db/push.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ model User {
1111

1212
describe('CLI db commands test', () => {
1313
it('should generate a database with db push', () => {
14-
const workDir = createProject(model);
14+
const workDir = createProject(model, { provider: 'sqlite' });
1515
runCli('db push', workDir);
16-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
16+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
1717
});
1818
});

packages/cli/test/migrate.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,36 @@ model User {
1111

1212
describe('CLI migrate commands test', () => {
1313
it('should generate a database with migrate dev', () => {
14-
const workDir = createProject(model);
14+
const workDir = createProject(model, { provider: 'sqlite' });
1515
runCli('migrate dev --name init', workDir);
16-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
16+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
1717
expect(fs.existsSync(path.join(workDir, 'zenstack/migrations'))).toBe(true);
1818
});
1919

2020
it('should reset the database with migrate reset', () => {
21-
const workDir = createProject(model);
21+
const workDir = createProject(model, { provider: 'sqlite' });
2222
runCli('db push', workDir);
23-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
23+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
2424
runCli('migrate reset --force', workDir);
25-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
25+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
2626
});
2727

2828
it('should reset the database with migrate deploy', () => {
29-
const workDir = createProject(model);
29+
const workDir = createProject(model, { provider: 'sqlite' });
3030
runCli('migrate dev --name init', workDir);
31-
fs.rmSync(path.join(workDir, 'zenstack/dev.db'));
31+
fs.rmSync(path.join(workDir, 'zenstack/test.db'));
3232
runCli('migrate deploy', workDir);
33-
expect(fs.existsSync(path.join(workDir, 'zenstack/dev.db'))).toBe(true);
33+
expect(fs.existsSync(path.join(workDir, 'zenstack/test.db'))).toBe(true);
3434
});
3535

3636
it('supports migrate status', () => {
37-
const workDir = createProject(model);
37+
const workDir = createProject(model, { provider: 'sqlite' });
3838
runCli('migrate dev --name init', workDir);
3939
runCli('migrate status', workDir);
4040
});
4141

4242
it('supports migrate resolve', () => {
43-
const workDir = createProject(model);
43+
const workDir = createProject(model, { provider: 'sqlite' });
4444
runCli('migrate dev --name init', workDir);
4545

4646
// find the migration record "timestamp_init"
@@ -51,7 +51,7 @@ describe('CLI migrate commands test', () => {
5151
fs.writeFileSync(path.join(workDir, 'zenstack/migrations', migration!, 'migration.sql'), 'invalid content');
5252

5353
// redeploy the migration, which will fail
54-
fs.rmSync(path.join(workDir, 'zenstack/dev.db'), { force: true });
54+
fs.rmSync(path.join(workDir, 'zenstack/test.db'), { force: true });
5555
try {
5656
runCli('migrate deploy', workDir);
5757
} catch {
@@ -66,7 +66,7 @@ describe('CLI migrate commands test', () => {
6666
});
6767

6868
it('should throw error when neither applied nor rolled-back is provided', () => {
69-
const workDir = createProject(model);
69+
const workDir = createProject(model, { provider: 'sqlite' });
7070
expect(() => runCli('migrate resolve', workDir)).toThrow();
7171
});
7272
});

packages/cli/test/utils.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@ function getTestDbName(provider: string) {
3434
);
3535
}
3636

37-
export function createProject(zmodel: string, addPrelude = true) {
38-
const provider = getTestDbProvider() ?? 'sqlite';
37+
export function createProject(
38+
zmodel: string,
39+
options?: { customPrelude?: boolean; provider?: 'sqlite' | 'postgresql' },
40+
) {
41+
const provider = (options?.provider || getTestDbProvider()) ?? 'sqlite';
3942
const dbName = getTestDbName(provider);
4043
const dbUrl =
4144
provider === 'sqlite'
@@ -50,7 +53,7 @@ export function createProject(zmodel: string, addPrelude = true) {
5053
const workDir = createTestProject();
5154
fs.mkdirSync(path.join(workDir, 'zenstack'), { recursive: true });
5255
const schemaPath = path.join(workDir, 'zenstack/schema.zmodel');
53-
fs.writeFileSync(schemaPath, addPrelude ? `${ZMODEL_PRELUDE}\n${zmodel}` : zmodel);
56+
fs.writeFileSync(schemaPath, !options?.customPrelude ? `${ZMODEL_PRELUDE}\n${zmodel}` : zmodel);
5457
return workDir;
5558
}
5659

0 commit comments

Comments
 (0)