Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions packages/db/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,9 @@
"build:ci": "astro-scripts build \"src/**/*.ts\"",
"dev": "astro-scripts dev \"src/**/*.ts\"",
"test": "pnpm run test:integration && pnpm run test:types",
"test:integration": "astro-scripts test \"test/**/*.test.js\"",
"test:types": "tsc --project test/types/tsconfig.json"
"test:integration": "astro-scripts test \"test/**/*.test.ts\"",
"test:types": "tsc --project test/types/tsconfig.json",
"typecheck:tests": "tsc --build tsconfig.test.json"
},
"dependencies": {
"@clack/prompts": "^1.0.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import testAdapter from '../../astro/test/test-adapter.js';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';
import { resolveDbAppToken } from '../dist/core/utils.js';
import { clearEnvironment, setupRemoteDb } from './test-utils.js';
import { clearEnvironment, type RemoteDbServer, setupRemoteDb } from './test-utils.ts';

describe('astro:db', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/basics/', import.meta.url),
Expand All @@ -17,7 +17,7 @@ describe('astro:db', () => {
});

describe('development', () => {
let devServer;
let devServer: DevServer;

before(async () => {
clearEnvironment();
Expand Down Expand Up @@ -96,8 +96,8 @@ describe('astro:db', () => {
});

describe('development --remote', () => {
let devServer;
let remoteDbServer;
let devServer: DevServer;
let remoteDbServer: RemoteDbServer;

before(async () => {
clearEnvironment();
Expand Down Expand Up @@ -178,7 +178,7 @@ describe('astro:db', () => {
});

describe('build --remote', () => {
let remoteDbServer;
let remoteDbServer: RemoteDbServer;

before(async () => {
clearEnvironment();
Expand Down Expand Up @@ -219,13 +219,11 @@ describe('astro:db', () => {

describe('Precedence for --db-app-token and ASTRO_DB_APP_TOKEN handled correctly', () => {
it('prefers --db-app-token over `ASTRO_DB_APP_TOKEN`', () => {
const flags = /** @type {any} */ ({ _: [], dbAppToken: 'from-flag' });
assert.equal(resolveDbAppToken(flags, 'from-env'), 'from-flag');
assert.equal(resolveDbAppToken({ _: [], dbAppToken: 'from-flag' }, 'from-env'), 'from-flag');
});

it('falls back to ASTRO_DB_APP_TOKEN if no flags set', () => {
const flags = /** @type {any} */ ({ _: [] });
assert.equal(resolveDbAppToken(flags, 'from-env'), 'from-env');
assert.equal(resolveDbAppToken({ _: [] }, 'from-env'), 'from-env');
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import testAdapter from '../../astro/test/test-adapter.js';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';

describe('astro:db', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/db-in-src/', import.meta.url),
Expand All @@ -16,7 +16,7 @@ describe('astro:db', () => {
});

describe('development: db/ folder inside srcDir', () => {
let devServer;
let devServer: DevServer;

before(async () => {
devServer = await fixture.startDevServer();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';
import { cli } from '../dist/core/cli/index.js';
import { setupRemoteDb } from './test-utils.js';
import { type RemoteDbServer, setupRemoteDb } from './test-utils.ts';

const foreignKeyConstraintError = 'LibsqlError: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed';

describe('astro:db - error handling', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/error-handling/', import.meta.url),
Expand All @@ -17,20 +17,19 @@ describe('astro:db - error handling', () => {
it('Errors on invalid --db-app-token input', async () => {
const originalExit = process.exit;
const originalError = console.error;
/** @type {string[]} */
const errorMessages = [];
console.error = (...args) => {
const errorMessages: string[] = [];
console.error = (...args: unknown[]) => {
errorMessages.push(args.map(String).join(' '));
};
process.exit = (code) => {
process.exit = ((code?: number) => {
throw new Error(`EXIT_${code}`);
};
}) as typeof process.exit;

try {
await cli({
config: fixture.config,
flags: {
_: [undefined, 'astro', 'db', 'verify'],
_: ['', 'astro', 'db', 'verify'],
dbAppToken: true,
},
});
Expand All @@ -48,7 +47,7 @@ describe('astro:db - error handling', () => {
});

describe('development', () => {
let devServer;
let devServer: DevServer;

before(async () => {
devServer = await fixture.startDevServer();
Expand All @@ -68,7 +67,7 @@ describe('astro:db - error handling', () => {
});

describe('build --remote', () => {
let remoteDbServer;
let remoteDbServer: RemoteDbServer;

before(async () => {
remoteDbServer = await setupRemoteDb(fixture.config);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';

describe('astro:db with only integrations, no user db config', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/integration-only/', import.meta.url),
});
});

describe('development', () => {
let devServer;
let devServer: DevServer;
before(async () => {
devServer = await fixture.startDevServer();
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';

describe('astro:db with integrations', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/integrations/', import.meta.url),
});
});

describe('development', () => {
let devServer;
let devServer: DevServer;

before(async () => {
devServer = await fixture.startDevServer();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ import { relative } from 'node:path';
import { after, before, describe, it } from 'node:test';
import { fileURLToPath } from 'node:url';
import testAdapter from '../../astro/test/test-adapter.js';
import { loadFixture } from '../../astro/test/test-utils.js';
import { clearEnvironment, initializeRemoteDb } from './test-utils.js';
import { type Fixture, loadFixture } from '../../astro/test/test-utils.js';
import { clearEnvironment, initializeRemoteDb } from './test-utils.ts';

describe('astro:db local database', () => {
describe('build --remote with local libSQL file (absolute path)', () => {
let fixture;
let fixture: Fixture;
before(async () => {
clearEnvironment();

const absoluteFileUrl = new URL('./fixtures/libsql-remote/temp/absolute.db', import.meta.url);
// Remove the file if it exists to avoid conflict between test runs
await rm(absoluteFileUrl, { force: true });

process.env.ASTRO_INTERNAL_TEST_REMOTE = true;
process.env.ASTRO_INTERNAL_TEST_REMOTE = 'true';
process.env.ASTRO_DB_REMOTE_URL = absoluteFileUrl.toString();

const root = new URL('./fixtures/libsql-remote/', import.meta.url);
Expand Down Expand Up @@ -46,7 +46,7 @@ describe('astro:db local database', () => {
});

describe('build --remote with local libSQL file (relative path)', () => {
let fixture;
let fixture: Fixture;
before(async () => {
clearEnvironment();

Expand All @@ -56,7 +56,7 @@ describe('astro:db local database', () => {
// Remove the file if it exists to avoid conflict between test runs
await rm(prodDbPath, { force: true });

process.env.ASTRO_INTERNAL_TEST_REMOTE = true;
process.env.ASTRO_INTERNAL_TEST_REMOTE = 'true';
process.env.ASTRO_DB_REMOTE_URL = `file:${prodDbPath}`;

const root = new URL('./fixtures/libsql-remote/', import.meta.url);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import { relative } from 'node:path';
import { after, before, describe, it } from 'node:test';
import { fileURLToPath } from 'node:url';
import testAdapter from '../../astro/test/test-adapter.js';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type Fixture, loadFixture } from '../../astro/test/test-utils.js';

describe('astro:db local database', () => {
describe('build (not remote) with DATABASE_FILE env (file URL)', () => {
let fixture;
let fixture: Fixture;
const prodDbPath = new URL('./fixtures/basics/dist/astro.db', import.meta.url).toString();
before(async () => {
process.env.ASTRO_DATABASE_FILE = prodDbPath;
Expand All @@ -34,7 +34,7 @@ describe('astro:db local database', () => {
});

describe('build (not remote) with DATABASE_FILE env (relative file path)', () => {
let fixture;
let fixture: Fixture;
const absoluteFileUrl = new URL('./fixtures/basics/dist/astro.db', import.meta.url);
const prodDbPath = relative(process.cwd(), fileURLToPath(absoluteFileUrl));

Expand Down Expand Up @@ -72,7 +72,7 @@ describe('astro:db local database', () => {
output: 'server',
adapter: testAdapter(),
});
let buildError = null;
let buildError: unknown = null;
try {
await fixture.build();
} catch (err) {
Expand All @@ -92,7 +92,7 @@ describe('astro:db local database', () => {
});

delete process.env.ASTRO_DATABASE_FILE;
let buildError = null;
let buildError: unknown = null;
try {
await fixture2.build();
} catch (err) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import { loadFixture } from '../../astro/test/test-utils.js';
import { type DevServer, type Fixture, loadFixture } from '../../astro/test/test-utils.js';

describe('astro:db with no seed file', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/no-seed/', import.meta.url),
});
});

describe('development', () => {
let devServer;
let devServer: DevServer;
before(async () => {
devServer = await fixture.startDevServer();
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import testAdapter from '../../astro/test/test-adapter.js';
import { loadFixture } from '../../astro/test/test-utils.js';
import { setupRemoteDb } from './test-utils.js';
import { type Fixture, loadFixture } from '../../astro/test/test-utils.js';
import { type RemoteDbServer, setupRemoteDb } from './test-utils.ts';

describe('missing app token', () => {
let fixture;
let remoteDbServer;
let fixture: Fixture;
let remoteDbServer: RemoteDbServer;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/no-apptoken/', import.meta.url),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { load as cheerioLoad } from 'cheerio';
import { loadFixture } from '../../astro/test/test-utils.js';
import { clearEnvironment, setupRemoteDb } from './test-utils.js';
import { type Fixture, loadFixture } from '../../astro/test/test-utils.js';
import { clearEnvironment, type RemoteDbServer, setupRemoteDb } from './test-utils.ts';

describe('astro:db', () => {
let fixture;
let fixture: Fixture;
before(async () => {
fixture = await loadFixture({
root: new URL('./fixtures/static-remote/', import.meta.url),
Expand All @@ -14,7 +14,7 @@ describe('astro:db', () => {
});

describe('static build --remote', () => {
let remoteDbServer;
let remoteDbServer: RemoteDbServer;

before(async () => {
remoteDbServer = await setupRemoteDb(fixture.config);
Expand All @@ -41,7 +41,7 @@ describe('astro:db', () => {
});

describe('static build --remote with custom LibSQL', () => {
let remoteDbServer;
let remoteDbServer: RemoteDbServer | undefined;

before(async () => {
clearEnvironment();
Expand Down
Loading
Loading