@@ -4,7 +4,7 @@ import 'fake-indexeddb/auto';
44import { Database } from '../static/storage.js' ;
55
66test ( '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