mirror of
https://github.com/appy-one/acebase.git
synced 2026-05-25 22:01:21 -06:00
58 lines
No EOL
1.7 KiB
JavaScript
58 lines
No EOL
1.7 KiB
JavaScript
/// <reference types="@types/jasmine" />
|
|
const { createTempDB } = require('./tempdb');
|
|
const { AceBase } = require('..');
|
|
|
|
describe('readonly databases', () => {
|
|
|
|
it('cannot be created', async () => {
|
|
try {
|
|
const { db, removeDB } = await createTempDB({ config(options) { options.storage = { readOnly: true } } });
|
|
await removeDB();
|
|
fail('readOnly database cannot be created');
|
|
}
|
|
catch(err) {
|
|
// Expected
|
|
}
|
|
});
|
|
|
|
it('cannot be written to', async () => {
|
|
let { db, removeDB } = await createTempDB();
|
|
await db.ref('test').set({ text: 'This is a test' });
|
|
await db.close();
|
|
|
|
// Open it readonly
|
|
db = new AceBase(db.name, { logLevel: 'verbose', storage: { path: __dirname, readOnly: true } });
|
|
|
|
try {
|
|
// Try writing to it
|
|
await db.ref('test').update({ test: 'Not allowed' });
|
|
fail('readOnly database cannot be written to');
|
|
}
|
|
catch(err) {
|
|
// Expected
|
|
}
|
|
|
|
await db.close();
|
|
await removeDB();
|
|
});
|
|
|
|
it('can be read from', async () => {
|
|
let { db, removeDB } = await createTempDB();
|
|
await db.ref('test').set({ text: 'This is a test' });
|
|
await db.close();
|
|
|
|
// Open it readonly
|
|
db = new AceBase(db.name, { logLevel: 'verbose', storage: { path: __dirname, readOnly: true } });
|
|
|
|
// Try reading from it
|
|
const snap = await db.ref('test').get();
|
|
const val = snap.val();
|
|
expect(val).not.toBeNull();
|
|
expect(typeof val).toBe('object');
|
|
expect(val.text).toBe('This is a test');
|
|
|
|
await db.close();
|
|
await removeDB();
|
|
});
|
|
|
|
}); |