1+ import { stackInstance } from '../utils/stack-instance' ;
2+ import { Entries } from '../../src/lib/entries' ;
3+ import { TEntry } from './types' ;
4+ import { QueryOperation } from 'src/lib/types' ;
5+ import { Query } from 'src/lib/query' ;
6+
7+ const stack = stackInstance ( ) ;
8+
9+ describe ( 'Query Operators API test cases' , ( ) => {
10+ it ( 'should get entries which matches the fieldUid and values' , async ( ) => {
11+ const query = await makeEntries ( 'contenttype_uid' ) . query ( ) . containedIn ( 'title' , [ 'value' ] ) . find < TEntry > ( )
12+ if ( query . entries ) {
13+ expect ( query . entries [ 0 ] . _version ) . toBeDefined ( ) ;
14+ expect ( query . entries [ 0 ] . title ) . toBeDefined ( ) ;
15+ expect ( query . entries [ 0 ] . uid ) . toBeDefined ( ) ;
16+ expect ( query . entries [ 0 ] . created_at ) . toBeDefined ( ) ;
17+ }
18+ } ) ;
19+
20+ it ( 'should get entries which does not match the fieldUid and values' , async ( ) => {
21+ const query = await makeEntries ( 'contenttype_uid' ) . query ( ) . notContainedIn ( 'title' , [ 'test' , 'test2' ] ) . find < TEntry > ( )
22+ if ( query . entries ) {
23+ expect ( query . entries [ 0 ] . _version ) . toBeDefined ( ) ;
24+ expect ( query . entries [ 0 ] . title ) . toBeDefined ( ) ;
25+ expect ( query . entries [ 0 ] . uid ) . toBeDefined ( ) ;
26+ expect ( query . entries [ 0 ] . created_at ) . toBeDefined ( ) ;
27+ }
28+ } ) ;
29+
30+ it ( 'should get entries which does not match the fieldUid - notExists' , async ( ) => {
31+ const query = await makeEntries ( 'contenttype_uid' ) . query ( ) . notExists ( 'multi_line' ) . find < TEntry > ( )
32+ if ( query . entries ) {
33+ expect ( query . entries [ 0 ] . _version ) . toBeDefined ( ) ;
34+ expect ( query . entries [ 0 ] . title ) . toBeDefined ( ) ;
35+ expect ( query . entries [ 0 ] . uid ) . toBeDefined ( ) ;
36+ expect ( query . entries [ 0 ] . created_at ) . toBeDefined ( ) ;
37+ expect ( ( query . entries [ 0 ] as any ) . multi_line ) . not . toBeDefined ( )
38+ }
39+ } ) ;
40+ it ( 'should return entries matching any of the conditions - or' , async ( ) => {
41+ const query1 : Query = await makeEntries ( 'contenttype_uid' ) . query ( ) . containedIn ( 'title' , [ 'value' ] ) ;
42+ const query2 : Query = await makeEntries ( 'contenttype_uid' ) . query ( ) . where ( 'title' , QueryOperation . EQUALS , 'value2' ) ;
43+ const query = await makeEntries ( 'contenttype_uid' ) . query ( ) . or ( query1 , query2 ) . find < TEntry > ( ) ;
44+
45+ if ( query . entries ) {
46+ expect ( query . entries ) . toHaveLength ( 2 ) ;
47+ expect ( query . entries [ 0 ] . _version ) . toBeDefined ( ) ;
48+ expect ( query . entries [ 0 ] . locale ) . toBeDefined ( ) ;
49+ expect ( query . entries [ 0 ] . uid ) . toBeDefined ( ) ;
50+ expect ( query . entries [ 0 ] . title ) . toBe ( 'value2' ) ;
51+ expect ( query . entries [ 1 ] . _version ) . toBeDefined ( ) ;
52+ expect ( query . entries [ 1 ] . locale ) . toBeDefined ( ) ;
53+ expect ( query . entries [ 1 ] . uid ) . toBeDefined ( ) ;
54+ expect ( query . entries [ 1 ] . title ) . toBe ( 'value' ) ;
55+ }
56+ } ) ;
57+ } ) ;
58+
59+ function makeEntries ( contentTypeUid = '' ) : Entries {
60+ const entries = stack . ContentType ( contentTypeUid ) . Entry ( ) ;
61+ return entries ;
62+ }
0 commit comments