@@ -503,6 +503,7 @@ module.exports = () => {
503503 } ) ;
504504 } ) ;
505505
506+
506507 it ( 'should return 200 and an LHCFill array for runs duration filter, > 03:00:00' , ( done ) => {
507508 request ( server )
508509 . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[runDuration][operator]=>&filter[runDuration][limit]=03:00:00' )
@@ -519,6 +520,177 @@ module.exports = () => {
519520 done ( ) ;
520521 } ) ;
521522 } ) ;
523+
524+ it ( 'should return 400 when stableBeamEnd filter "from" is greater than the current time' , ( done ) => {
525+ request ( server )
526+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsEnd][from]=2647867600000' )
527+ . expect ( 400 )
528+ . end ( ( err , res ) => {
529+ if ( err ) {
530+ done ( err ) ;
531+ return ;
532+ }
533+
534+ const { errors : [ error ] } = res . body ;
535+ expect ( error . title ) . to . equal ( 'Invalid Attribute' ) ;
536+ expect ( error . detail ) . to . equal ( '"query.filter.stableBeamsEnd.from" must be less than "now"' ) ;
537+ done ( )
538+ } ) ;
539+ } ) ;
540+
541+ it ( 'should return 400 when stableBeamStart filter "from" is greater than the current time' , ( done ) => {
542+ request ( server )
543+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][from]=2647867600000' )
544+ . expect ( 400 )
545+ . end ( ( err , res ) => {
546+ if ( err ) {
547+ done ( err ) ;
548+ return ;
549+ }
550+
551+ const { errors : [ error ] } = res . body ;
552+ expect ( error . title ) . to . equal ( 'Invalid Attribute' ) ;
553+ expect ( error . detail ) . to . equal ( '"query.filter.stableBeamsStart.from" must be less than "now"' ) ;
554+ done ( )
555+ } ) ;
556+ } ) ;
557+
558+ it ( 'should return 400 when stableBeamEnd filter "from" is greater than "to"' , ( done ) => {
559+ request ( server )
560+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsEnd][from]=1647867699999&filter[stableBeamsEnd][to]=1647867600000' )
561+ . expect ( 400 )
562+ . end ( ( err , res ) => {
563+ if ( err ) {
564+ done ( err ) ;
565+ return ;
566+ }
567+
568+ const { errors : [ error ] } = res . body ;
569+ expect ( error . title ) . to . equal ( 'Invalid Attribute' ) ;
570+ expect ( error . detail ) . to . equal ( '"query.filter.stableBeamsEnd.to" must be greater than "ref:from"' ) ;
571+ done ( )
572+ } ) ;
573+ } ) ;
574+
575+ it ( 'should return 400 when stableBeamStart filters are strings' , ( done ) => {
576+ request ( server )
577+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][from]=bogus&filter[stableBeamsStart][to]=bogus' )
578+ . expect ( 400 )
579+ . end ( ( err , res ) => {
580+ if ( err ) {
581+ done ( err ) ;
582+ return ;
583+ }
584+
585+ const { errors } = res . body ;
586+
587+ expect ( errors . map ( e => e . detail ) ) . to . have . members ( [
588+ '"query.filter.stableBeamsStart.from" must be a valid date' ,
589+ '"query.filter.stableBeamsStart.to" must be a valid date' ,
590+ ] ) ;
591+
592+ expect ( errors . every ( e => e . title === 'Invalid Attribute' ) ) . to . be . true ;
593+ done ( )
594+ } ) ;
595+ } ) ;
596+
597+ it ( 'should return 400 when stableBeamEnd filters are strings' , ( done ) => {
598+ request ( server )
599+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsEnd][from]=bogus&filter[stableBeamsEnd][to]=bogus' )
600+ . expect ( 400 )
601+ . end ( ( err , res ) => {
602+ if ( err ) {
603+ done ( err ) ;
604+ return ;
605+ }
606+
607+ const { errors } = res . body ;
608+
609+ expect ( errors . map ( e => e . detail ) ) . to . have . members ( [
610+ '"query.filter.stableBeamsEnd.from" must be a valid date' ,
611+ '"query.filter.stableBeamsEnd.to" must be a valid date' ,
612+ ] ) ;
613+
614+ expect ( errors . every ( e => e . title === 'Invalid Attribute' ) ) . to . be . true ;
615+ done ( )
616+ } ) ;
617+ } ) ;
618+
619+ it ( 'should return 400 when stableBeamStart filter "from" is greater than "to"' , ( done ) => {
620+ request ( server )
621+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][from]=1647867699999&filter[stableBeamsStart][to]=1647867600000' )
622+ . expect ( 400 )
623+ . end ( ( err , res ) => {
624+ if ( err ) {
625+ done ( err ) ;
626+ return ;
627+ }
628+
629+ const { errors : [ error ] } = res . body ;
630+ expect ( error . title ) . to . equal ( 'Invalid Attribute' ) ;
631+ expect ( error . detail ) . to . equal ( '"query.filter.stableBeamsStart.to" must be greater than "ref:from"' ) ;
632+ done ( )
633+ } ) ;
634+ } ) ;
635+
636+ it ( 'should return 200 and a LHCFill array for only "from" filters set for stableBeamStart and end' , ( done ) => {
637+ const fromValue = 1647867600000 ;
638+
639+ request ( server )
640+ . get ( `/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][from]=${ fromValue } &filter[stableBeamsEnd][from]=${ fromValue } ` )
641+ . expect ( 200 )
642+ . end ( ( err , res ) => {
643+ if ( err ) {
644+ done ( err ) ;
645+ return ;
646+ }
647+
648+ expect ( res . body . data ) . to . have . lengthOf ( 3 ) ;
649+ res . body . data . forEach ( fill => {
650+ expect ( fill . stableBeamsStart ) . to . be . at . least ( fromValue ) ;
651+ expect ( fill . stableBeamsEnd ) . to . be . at . least ( fromValue ) ;
652+ } ) ;
653+
654+ done ( ) ;
655+ } ) ;
656+ } ) ;
657+
658+ it ( 'should return 200 and a LHCFill array for only "to" filters set for stableBeamStart and end' , ( done ) => {
659+ const toValue = 2000000000000 ;
660+
661+ request ( server )
662+ . get ( `/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][to]=${ toValue } &filter[stableBeamsEnd][to]=${ toValue } ` )
663+ . expect ( 200 )
664+ . end ( ( err , res ) => {
665+ if ( err ) {
666+ done ( err ) ;
667+ return ;
668+ }
669+
670+ expect ( res . body . data ) . to . have . lengthOf ( 4 ) ;
671+
672+ res . body . data . forEach ( fill => {
673+ expect ( fill . stableBeamsStart ) . to . be . at . most ( toValue ) ;
674+ expect ( fill . stableBeamsEnd ) . to . be . at . most ( toValue ) ;
675+ } ) ;
676+ done ( ) ;
677+ } ) ;
678+ } ) ;
679+
680+ it ( 'should return 200 and a LHCFill array for stableBeamStart and end filter set' , ( done ) => {
681+ request ( server )
682+ . get ( '/api/lhcFills?page[offset]=0&page[limit]=15&filter[stableBeamsStart][from]=1647867600000&filter[stableBeamsStart][to]=1647867600001&filter[stableBeamsEnd][from]=1647961200000&filter[stableBeamsEnd][to]=1647961200001' )
683+ . expect ( 200 )
684+ . end ( ( err , res ) => {
685+ if ( err ) {
686+ done ( err ) ;
687+ return ;
688+ }
689+
690+ expect ( res . body . data ) . to . have . lengthOf ( 3 ) ;
691+ done ( ) ;
692+ } ) ;
693+ } ) ;
522694
523695 it ( 'should return 200 and an LHCFill array for beam types filter, correct' , ( done ) => {
524696 request ( server )
0 commit comments