mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 18:25:13 +08:00
Rename the DatabaseSync and StatementSync classes to Database and Statement, and the internal DatabaseSyncLimits helper to DatabaseLimits. The old names are kept as aliases of the new classes and are Documentation-only deprecated (DEP0210, DEP0211). Assisted-by: Claude Code Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: https://github.com/nodejs/node/pull/65988 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
'use strict';
|
|
const { skipIfSQLiteMissing } = require('../common');
|
|
skipIfSQLiteMissing();
|
|
const { Database } = require('node:sqlite');
|
|
const { suite, test } = require('node:test');
|
|
|
|
suite('manual transactions', () => {
|
|
test('a transaction is committed', (t) => {
|
|
const db = new Database(':memory:');
|
|
t.after(() => { db.close(); });
|
|
const setup = db.exec(`
|
|
CREATE TABLE data(
|
|
key INTEGER PRIMARY KEY
|
|
) STRICT;
|
|
`);
|
|
t.assert.strictEqual(setup, undefined);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('BEGIN').run(),
|
|
{ changes: 0, lastInsertRowid: 0 },
|
|
);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('INSERT INTO data (key) VALUES (100)').run(),
|
|
{ changes: 1, lastInsertRowid: 100 },
|
|
);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('COMMIT').run(),
|
|
{ changes: 1, lastInsertRowid: 100 },
|
|
);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('SELECT * FROM data').all(),
|
|
[{ __proto__: null, key: 100 }],
|
|
);
|
|
});
|
|
|
|
test('a transaction is rolled back', (t) => {
|
|
const db = new Database(':memory:');
|
|
t.after(() => { db.close(); });
|
|
const setup = db.exec(`
|
|
CREATE TABLE data(
|
|
key INTEGER PRIMARY KEY
|
|
) STRICT;
|
|
`);
|
|
t.assert.strictEqual(setup, undefined);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('BEGIN').run(),
|
|
{ changes: 0, lastInsertRowid: 0 },
|
|
);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('INSERT INTO data (key) VALUES (100)').run(),
|
|
{ changes: 1, lastInsertRowid: 100 },
|
|
);
|
|
t.assert.deepStrictEqual(
|
|
db.prepare('ROLLBACK').run(),
|
|
{ changes: 1, lastInsertRowid: 100 },
|
|
);
|
|
t.assert.deepStrictEqual(db.prepare('SELECT * FROM data').all(), []);
|
|
});
|
|
});
|