mirror of
https://github.com/appy-one/acebase.git
synced 2026-05-25 22:01:21 -06:00
58 lines
No EOL
1.9 KiB
JavaScript
58 lines
No EOL
1.9 KiB
JavaScript
/// <reference types="@types/jasmine" />
|
|
const { createTempDB } = require("./tempdb");
|
|
|
|
describe('JSON data export', () => {
|
|
let db, removeDB;
|
|
|
|
beforeAll(async () => {
|
|
({ db, removeDB } = await createTempDB());
|
|
});
|
|
|
|
it('should be typesafe', async () => {
|
|
const obj = {
|
|
name: 'Ewout',
|
|
country: 'The Netherlands',
|
|
points: 125,
|
|
created: new Date()
|
|
}
|
|
await db.ref('object').set(obj);
|
|
|
|
let json = '';
|
|
await db.ref('object').export({ write: str => json += str }, { format: 'json', type_safe: true });
|
|
expect(typeof json).toBe('string');
|
|
|
|
let serialized;
|
|
expect(() => { serialized = JSON.parse(json) }).not.toThrow();
|
|
expect(typeof serialized).toBe('object');
|
|
expect(serialized.name).toEqual(obj.name);
|
|
expect(serialized.country).toEqual(obj.country);
|
|
expect(serialized.points).toEqual(obj.points);
|
|
expect(serialized.created).toEqual({ '.type': 'Date', '.val': obj.created.toISOString() });
|
|
});
|
|
|
|
it('should allow not to be typesafe', async () => {
|
|
const obj = {
|
|
name: 'Ewout',
|
|
country: 'The Netherlands',
|
|
points: 125,
|
|
created: new Date()
|
|
}
|
|
await db.ref('object2').set(obj);
|
|
|
|
let json = '';
|
|
await db.ref('object2').export({ write: str => json += str }, { format: 'json', type_safe: false });
|
|
expect(typeof json).toBe('string');
|
|
|
|
let serialized;
|
|
expect(() => { serialized = JSON.parse(json) }).not.toThrow();
|
|
expect(typeof serialized).toBe('object');
|
|
expect(serialized.name).toEqual(obj.name);
|
|
expect(serialized.country).toEqual(obj.country);
|
|
expect(serialized.points).toEqual(obj.points);
|
|
expect(serialized.created).toEqual(obj.created.toISOString());
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await removeDB();
|
|
})
|
|
}); |