@@ -325,8 +325,154 @@ describe('Entry Query Test', () => {
325325 done ( )
326326 } ) ;
327327
328+ test ( 'Taxonomy Query: Get entries with one term' , done => {
329+ const query = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid" , "term_uid" ) ;
330+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : "term_uid" } } ) ;
331+ done ( ) ;
332+ } ) ;
333+
334+ test ( 'Taxonomy Query: Get entries with any term ($in)' , done => {
335+ const query = makeTaxonomyQuery ( ) . containedIn ( "taxonomies.taxonomy_uid" , [ "term_uid1" , "term_uid2" ] ) ;
336+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$in" : [ "term_uid1" , "term_uid2" ] } } } ) ;
337+ done ( ) ;
338+ } ) ;
339+
340+ test ( 'Taxonomy Query: Get entries with any term ($or)' , done => {
341+ const query1 = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid1" , "term_uid1" ) ;
342+ const query2 = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid2" , "term_uid2" ) ;
343+ const query = makeTaxonomyQuery ( ) . or ( query1 , query2 ) ;
344+ expect ( query . _query ) . toEqual ( { "query" : { $or : [ { "taxonomies.taxonomy_uid1" : "term_uid1" } , { "taxonomies.taxonomy_uid2" : "term_uid2" } ] } } ) ;
345+ done ( ) ;
346+ } ) ;
347+
348+ test ( 'Taxonomy Query: Get entries with all term ($and)' , done => {
349+ const query1 = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid1" , "term_uid1" ) ;
350+ const query2 = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid2" , "term_uid2" ) ;
351+ const query = makeTaxonomyQuery ( ) . and ( query1 , query2 ) ;
352+ expect ( query . _query ) . toEqual ( { "query" : { $and : [ { "taxonomies.taxonomy_uid1" : "term_uid1" } , { "taxonomies.taxonomy_uid2" : "term_uid2" } ] } } ) ;
353+ done ( ) ;
354+ } ) ;
355+
356+ test ( 'Taxonomy Query: Get entries with any taxonomy terms ($exists)' , done => {
357+ const query = makeTaxonomyQuery ( ) . exists ( "taxonomies.taxonomy_uid" ) ;
358+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { $exists : true } } } ) ;
359+ done ( ) ;
360+ } ) ;
361+
362+ test ( 'Taxonomy Query: Get entries with taxonomy terms and also matching its children terms ($eq_below, level)' , done => {
363+ const query = makeTaxonomyQuery ( ) . equalAndBelow ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
364+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$eq_below" : "term_uid" , "levels" : 4 } } } ) ;
365+ done ( ) ;
366+ } ) ;
367+
368+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms Children\'s and Excluding the term itself ($below, level) ' , done => {
369+ const query = makeTaxonomyQuery ( ) . below ( "taxonomies.taxonomy_uid" , "term_uid" ) ;
370+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$below" : "term_uid" } } } ) ;
371+ done ( ) ;
372+ } ) ;
373+
374+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms and Also Matching Its Parent Term ($eq_above, level)' , done => {
375+ const query = makeTaxonomyQuery ( ) . equalAndAbove ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
376+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$eq_above" : "term_uid" , "levels" : 4 } } } ) ;
377+ done ( ) ;
378+ } ) ;
379+
380+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms Parent and Excluding the term itself ($above, level)' , done => {
381+ const query = makeTaxonomyQuery ( ) . above ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
382+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$above" : "term_uid" , "levels" : 4 } } } ) ;
383+ done ( ) ;
384+ } ) ;
385+
386+ test ( 'Taxonomy Query: Get All Entries With Taxonomy For One Content type' , done => {
387+ const query = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid" , "term_uid" ) . where ( "_content_type" , "ct1" ) ;
388+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : "term_uid" , "_content_type" : "ct1" } } ) ;
389+ done ( ) ;
390+ } ) ;
391+
392+ test ( 'Taxonomy Query: Get All Entries With Taxonomy For Multiple Content types' , done => {
393+ const query = makeTaxonomyQuery ( ) . where ( "taxonomies.taxonomy_uid" , "term_uid" ) . containedIn ( "_content_type" , [ "ct1" , "ct2" ] ) ;
394+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : "term_uid" , "_content_type" : { $in : [ "ct1" , "ct2" ] } } } ) ;
395+ done ( ) ;
396+ } ) ;
397+
398+ // ###########################################################
399+
400+ test ( 'CT Taxonomy Query: Get entries with one term' , done => {
401+ const query = makeEntryQuery ( ) . where ( "taxonomies.taxonomy_uid" , "term_uid" ) ;
402+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : "term_uid" } } ) ;
403+ done ( ) ;
404+ } ) ;
405+
406+ test ( 'Taxonomy Query: Get entries with any term ($in)' , done => {
407+ const query = makeEntryQuery ( ) . containedIn ( "taxonomies.taxonomy_uid" , [ "term_uid1" , "term_uid2" ] ) ;
408+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$in" : [ "term_uid1" , "term_uid2" ] } } } ) ;
409+ done ( ) ;
410+ } ) ;
411+
412+ test ( 'Taxonomy Query: Get entries with any term ($or)' , done => {
413+ const query1 = makeEntryQuery ( ) . where ( "taxonomies.taxonomy_uid1" , "term_uid1" ) ;
414+ const query2 = makeEntryQuery ( ) . where ( "taxonomies.taxonomy_uid2" , "term_uid2" ) ;
415+ const query = makeEntryQuery ( ) . or ( query1 , query2 ) ;
416+ expect ( query . _query ) . toEqual ( { "query" : { $or : [ { "taxonomies.taxonomy_uid1" : "term_uid1" } , { "taxonomies.taxonomy_uid2" : "term_uid2" } ] } } ) ;
417+ done ( ) ;
418+ } ) ;
419+
420+ test ( 'Taxonomy Query: Get entries with all term ($and)' , done => {
421+ const query1 = makeEntryQuery ( ) . where ( "taxonomies.taxonomy_uid1" , "term_uid1" ) ;
422+ const query2 = makeEntryQuery ( ) . where ( "taxonomies.taxonomy_uid2" , "term_uid2" ) ;
423+ const query = makeEntryQuery ( ) . and ( query1 , query2 ) ;
424+ expect ( query . _query ) . toEqual ( { "query" : { $and : [ { "taxonomies.taxonomy_uid1" : "term_uid1" } , { "taxonomies.taxonomy_uid2" : "term_uid2" } ] } } ) ;
425+ done ( ) ;
426+ } ) ;
427+
428+ test ( 'Taxonomy Query: Get entries with any taxonomy terms ($exists)' , done => {
429+ const query = makeEntryQuery ( ) . exists ( "taxonomies.taxonomy_uid" ) ;
430+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { $exists : true } } } ) ;
431+ done ( ) ;
432+ } ) ;
433+
434+ test ( 'Taxonomy Query: Get entries with taxonomy terms and also matching its children terms ($eq_below, level)' , done => {
435+ const query = makeEntryQuery ( ) . equalAndBelow ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
436+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$eq_below" : "term_uid" , "levels" : 4 } } } ) ;
437+ done ( ) ;
438+ } ) ;
439+
440+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms Children\'s and Excluding the term itself ($below, level) ' , done => {
441+ const query = makeEntryQuery ( ) . below ( "taxonomies.taxonomy_uid" , "term_uid" ) ;
442+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$below" : "term_uid" } } } ) ;
443+ done ( ) ;
444+ } ) ;
445+
446+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms and Also Matching Its Parent Term ($eq_above, level)' , done => {
447+ const query = makeEntryQuery ( ) . equalAndAbove ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
448+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$eq_above" : "term_uid" , "levels" : 4 } } } ) ;
449+ done ( ) ;
450+ } ) ;
451+
452+ test ( 'Taxonomy Query: Get Entries With Taxonomy Terms Parent and Excluding the term itself ($above, level)' , done => {
453+ const query = makeEntryQuery ( ) . above ( "taxonomies.taxonomy_uid" , "term_uid" , 4 ) ;
454+ expect ( query . _query ) . toEqual ( { "query" : { "taxonomies.taxonomy_uid" : { "$above" : "term_uid" , "levels" : 4 } } } ) ;
455+ done ( ) ;
456+ } ) ;
457+
458+ // test('Taxonomy Query: Get All Entries With Taxonomy For One Content type', done => {
459+ // const query = makeEntryQuery().where("taxonomies.taxonomy_uid", "term_uid").where("_content_type", "ct1");
460+ // expect(query._query).toEqual({"query": {"taxonomies.taxonomy_uid": "term_uid", "_content_type": "ct1"}});
461+ // done();
462+ // });
463+
464+ // test('Taxonomy Query: Get All Entries With Taxonomy For Multiple Content types', done => {
465+ // const query = makeEntryQuery().where("taxonomies.taxonomy_uid", "term_uid").containedIn("_content_type", ["ct1", "ct2"]);
466+ // expect(query._query).toEqual({"query": {"taxonomies.taxonomy_uid": "term_uid", "_content_type": {$in: ["ct1", "ct2"]}}});
467+ // done();
468+ // });
469+
328470} ) ;
329471
330472function makeEntryQuery ( ) {
331473 return stack . ContentType ( 'uid' ) . Query ( )
474+ }
475+
476+ function makeTaxonomyQuery ( ) {
477+ return stack . Taxonomies ( ) . Query ( )
332478}
0 commit comments