Skip to content

Commit 036ce33

Browse files
committed
Add tests for complex DSL query
1 parent a8f3f0e commit 036ce33

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

Pragmatic/test/database.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'fake-indexeddb/auto';
44
import { Database } from '../static/storage.js';
55

66
test('Pragmatic: Database CRUD + DSL', async () => {
7-
const db = await new Database('TestDB', {
7+
const db = await new Database('PragmaticDB', {
88
version: 1,
99
schemas: {
1010
user: { keyPath: 'id', autoIncrement: true },
@@ -72,3 +72,29 @@ test('Pragmatic: Database CRUD + DSL', async () => {
7272
});
7373
assert.equal(limited.length, 1);
7474
});
75+
76+
test('Pragmatic: Complex DSL', async () => {
77+
const db = await new Database('ComplexDB', {
78+
version: 1,
79+
schemas: {
80+
user: { keyPath: 'id', autoIncrement: true },
81+
},
82+
});
83+
84+
await db.insert({ store: 'user', record: { name: 'Marcus', age: 20 } });
85+
await db.insert({ store: 'user', record: { name: 'Lucius', age: 20 } });
86+
await db.insert({ store: 'user', record: { name: 'Antoninus', age: 40 } });
87+
88+
const list = await db.select({
89+
store: 'user',
90+
where: { age: 20 },
91+
filter: (user) => user.age < 30,
92+
sort: (a, b) => a.age - b.age,
93+
order: { name: 'desc' },
94+
offset: 1,
95+
limit: 1,
96+
});
97+
98+
assert.equal(list.length, 1);
99+
assert.equal(list[0].age, 20);
100+
});

0 commit comments

Comments
 (0)