@@ -4,7 +4,7 @@ import 'fake-indexeddb/auto';
4
4
import { Database } from '../static/storage.js' ;
5
5
6
6
test ( 'Pragmatic: Database CRUD + DSL' , async ( ) => {
7
- const db = await new Database ( 'TestDB ' , {
7
+ const db = await new Database ( 'PragmaticDB ' , {
8
8
version : 1 ,
9
9
schemas : {
10
10
user : { keyPath : 'id' , autoIncrement : true } ,
@@ -72,3 +72,29 @@ test('Pragmatic: Database CRUD + DSL', async () => {
72
72
} ) ;
73
73
assert . equal ( limited . length , 1 ) ;
74
74
} ) ;
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