Skip to content
File

Blob: src/workerd/api/node/tests/sqlite-nodejs-test.js

javascript76 lines
1// Copyright (c) 2025 Cloudflare, Inc.
2// Licensed under the Apache 2.0 license found in the LICENSE file or at:
3// https://opensource.org/licenses/Apache-2.0
4import sqlite from 'node:sqlite';
5import { deepStrictEqual, notStrictEqual, throws } from 'node:assert';
6 
7export const testExports = {
8 async test() {
9 notStrictEqual(sqlite.DatabaseSync, undefined);
10 notStrictEqual(sqlite.StatementSync, undefined);
11 notStrictEqual(sqlite.backup, undefined);
12 notStrictEqual(sqlite.constants, undefined);
13 
14 deepStrictEqual(sqlite.constants, {
15 SQLITE_CHANGESET_OMIT: 0,
16 SQLITE_CHANGESET_REPLACE: 1,
17 SQLITE_CHANGESET_ABORT: 2,
18 SQLITE_CHANGESET_DATA: 1,
19 SQLITE_CHANGESET_NOTFOUND: 2,
20 SQLITE_CHANGESET_CONFLICT: 3,
21 SQLITE_CHANGESET_CONSTRAINT: 4,
22 SQLITE_CHANGESET_FOREIGN_KEY: 5,
23 // Authorization action codes
24 SQLITE_OK: 0,
25 SQLITE_DENY: 1,
26 SQLITE_IGNORE: 2,
27 SQLITE_CREATE_INDEX: 1,
28 SQLITE_CREATE_TABLE: 2,
29 SQLITE_CREATE_TEMP_INDEX: 3,
30 SQLITE_CREATE_TEMP_TABLE: 4,
31 SQLITE_CREATE_TEMP_TRIGGER: 5,
32 SQLITE_CREATE_TEMP_VIEW: 6,
33 SQLITE_CREATE_TRIGGER: 7,
34 SQLITE_CREATE_VIEW: 8,
35 SQLITE_DELETE: 9,
36 SQLITE_DROP_INDEX: 10,
37 SQLITE_DROP_TABLE: 11,
38 SQLITE_DROP_TEMP_INDEX: 12,
39 SQLITE_DROP_TEMP_TABLE: 13,
40 SQLITE_DROP_TEMP_TRIGGER: 14,
41 SQLITE_DROP_TEMP_VIEW: 15,
42 SQLITE_DROP_TRIGGER: 16,
43 SQLITE_DROP_VIEW: 17,
44 SQLITE_INSERT: 18,
45 SQLITE_PRAGMA: 19,
46 SQLITE_READ: 20,
47 SQLITE_SELECT: 21,
48 SQLITE_TRANSACTION: 22,
49 SQLITE_UPDATE: 23,
50 SQLITE_ATTACH: 24,
51 SQLITE_DETACH: 25,
52 SQLITE_ALTER_TABLE: 26,
53 SQLITE_REINDEX: 27,
54 SQLITE_ANALYZE: 28,
55 SQLITE_CREATE_VTABLE: 29,
56 SQLITE_DROP_VTABLE: 30,
57 SQLITE_FUNCTION: 31,
58 SQLITE_SAVEPOINT: 32,
59 SQLITE_COPY: 0,
60 SQLITE_RECURSIVE: 33,
61 });
62 
63 throws(() => sqlite.backup(), {
64 message: /is not implemented/,
65 });
66 
67 throws(() => new sqlite.DatabaseSync(), {
68 message: /Illegal constructor/,
69 });
70 
71 throws(() => new sqlite.StatementSync(), {
72 message: /Illegal constructor/,
73 });
74 },
75};