@@ -10,21 +10,41 @@ const defaultData = { posts: [] }
1010const adapter = new Memory < Data > ( )
1111const db = new Low < Data > ( adapter , defaultData )
1212const service = new Service ( db )
13+
1314const POSTS = 'posts'
1415const COMMENTS = 'comments'
1516const UNKNOWN_RESOURCE = 'xxx'
1617const UNKNOWN_ID = 'xxx'
17- const post1 = { id : '1' , title : 'a' , views : 100 , author : { name : 'foo' } }
18- const post2 = { id : '2' , title : 'b' , views : 200 , author : { name : 'bar' } }
19- const post3 = { id : '3' , title : 'c' , views : 300 , author : { name : 'baz' } }
18+
19+ const post1 = {
20+ id : '1' ,
21+ title : 'a' ,
22+ views : 100 ,
23+ author : { name : 'foo' } ,
24+ tags : [ 'foo' , 'bar' ] ,
25+ }
26+ const post2 = {
27+ id : '2' ,
28+ title : 'b' ,
29+ views : 200 ,
30+ author : { name : 'bar' } ,
31+ tags : [ 'bar' ] ,
32+ }
33+ const post3 = {
34+ id : '3' ,
35+ title : 'c' ,
36+ views : 300 ,
37+ author : { name : 'baz' } ,
38+ tags : [ 'foo' ] ,
39+ }
2040const comment1 = { id : '1' , title : 'a' , postId : '1' }
2141const items = 3
42+
2243function reset ( ) {
23- const post1 = { id : '1' , title : 'a' , views : 100 , author : { name : 'foo' } }
24- const post2 = { id : '2' , title : 'b' , views : 200 , author : { name : 'bar' } }
25- const post3 = { id : '3' , title : 'c' , views : 300 , author : { name : 'baz' } }
26- const comment1 = { id : '1' , title : 'a' , postId : '1' }
27- db . data = { posts : [ post1 , post2 , post3 ] , comments : [ comment1 ] }
44+ db . data = structuredClone ( {
45+ posts : [ post1 , post2 , post3 ] ,
46+ comments : [ comment1 ] ,
47+ } )
2848}
2949
3050type Test = {
@@ -50,7 +70,7 @@ await test('findById', () => {
5070 assert . equal ( service . findById ( UNKNOWN_RESOURCE , '1' , { } ) , undefined )
5171} )
5272
53- await test ( 'find' , ( ) => {
73+ await test ( 'find' , async ( t ) => {
5474 const arr : Test [ ] = [
5575 {
5676 name : POSTS ,
@@ -76,6 +96,11 @@ await test('find', () => {
7696 params : { 'author.name' : post1 . author . name } ,
7797 res : [ post1 ] ,
7898 } ,
99+ {
100+ name : POSTS ,
101+ params : { 'tags[0]' : 'foo' } ,
102+ res : [ post1 , post3 ] ,
103+ } ,
79104 {
80105 name : POSTS ,
81106 params : { id : UNKNOWN_ID , views : post1 . views . toString ( ) } ,
@@ -213,13 +238,15 @@ await test('find', () => {
213238 } ,
214239 ]
215240 for ( const tc of arr ) {
216- if ( tc . data ) {
217- db . data = tc . data
218- } else {
219- reset ( )
220- }
241+ await t . test ( `${ tc . name } ${ JSON . stringify ( tc . params ) } ` , ( ) => {
242+ if ( tc . data ) {
243+ db . data = tc . data
244+ } else {
245+ reset ( )
246+ }
221247
222- assert . deepEqual ( service . find ( tc . name , tc . params ) , tc . res )
248+ assert . deepEqual ( service . find ( tc . name , tc . params ) , tc . res )
249+ } )
223250 }
224251} )
225252
0 commit comments