@@ -402,3 +402,170 @@ avaTest('Overrides scopes with the same name', test => {
402402 } )
403403 )
404404} )
405+
406+ const DefaultController = {
407+ beforeEach ( ) { } ,
408+ afterEach ( ) { } ,
409+ index ( ) { } ,
410+ create ( ) { } ,
411+ read ( ) { } ,
412+ update ( ) { } ,
413+ patch ( ) { } ,
414+ destroy ( ) { } ,
415+ }
416+
417+ avaTest ( 'Resources with default' , test => {
418+ test . deepEqual (
419+ createRest ( root => {
420+ root . resources ( 'books' , DefaultController )
421+ } ) ,
422+ make ( [ ] , [ ] , { } , {
423+ books : make (
424+ [ DefaultController . beforeEach ] ,
425+ [ DefaultController . afterEach ] ,
426+ {
427+ GET : [ DefaultController . index ] , POST : [ DefaultController . create ]
428+ } ,
429+ {
430+ ':bookId' : make ( [ ] , [ ] , {
431+ GET : [ DefaultController . read ] ,
432+ PUT : [ DefaultController . update ] ,
433+ PATCH : [ DefaultController . patch ] ,
434+ DELETE : [ DefaultController . destroy ] ,
435+ } ) ,
436+ }
437+ ) ,
438+ } )
439+ )
440+ } )
441+
442+ avaTest ( 'Resource with empty controller' , test => {
443+ test . deepEqual (
444+ createRest ( root => {
445+ root . resources ( 'books' , { } )
446+ } ) ,
447+ make ( [ ] , [ ] , { } , {
448+ books : make ( [ ] , [ ] , { } , {
449+ ':bookId' : make ( )
450+ } )
451+ } )
452+ )
453+ } )
454+
455+ avaTest ( 'Resources with only' , test => {
456+ test . deepEqual (
457+ createRest ( root => {
458+ root . resources ( 'books' , DefaultController , { only : [ 'index' , 'read' ] } )
459+ } ) ,
460+ make ( [ ] , [ ] , { } , {
461+ books : make (
462+ [ DefaultController . beforeEach ] ,
463+ [ DefaultController . afterEach ] ,
464+ {
465+ GET : [ DefaultController . index ] ,
466+ } ,
467+ {
468+ ':bookId' : make ( [ ] , [ ] , {
469+ GET : [ DefaultController . read ] ,
470+ } ) ,
471+ }
472+ ) ,
473+ } )
474+ )
475+ } )
476+
477+ avaTest ( 'Resources with except' , test => {
478+ test . deepEqual (
479+ createRest ( root => {
480+ root . resources ( 'books' , DefaultController , { except : [ 'index' , 'read' , 'update' ] } )
481+ } ) ,
482+ make ( [ ] , [ ] , { } , {
483+ books : make (
484+ [ DefaultController . beforeEach ] ,
485+ [ DefaultController . afterEach ] ,
486+ {
487+ POST : [ DefaultController . create ]
488+ } ,
489+ {
490+ ':bookId' : make ( [ ] , [ ] , {
491+ PATCH : [ DefaultController . patch ] ,
492+ DELETE : [ DefaultController . destroy ] ,
493+ } ) ,
494+ }
495+ ) ,
496+ } )
497+ )
498+ } )
499+
500+ avaTest ( 'Resources with patch/update case' , test => {
501+ test . deepEqual (
502+ createRest ( root => {
503+ root . resources ( 'books' , Object . assign ( { } , DefaultController , { patch : undefined } ) )
504+ } ) ,
505+ make ( [ ] , [ ] , { } , {
506+ books : make (
507+ [ DefaultController . beforeEach ] ,
508+ [ DefaultController . afterEach ] ,
509+ {
510+ GET : [ DefaultController . index ] , POST : [ DefaultController . create ]
511+ } ,
512+ {
513+ ':bookId' : make ( [ ] , [ ] , {
514+ GET : [ DefaultController . read ] ,
515+ PUT : [ DefaultController . update ] ,
516+ PATCH : [ DefaultController . update ] ,
517+ DELETE : [ DefaultController . destroy ] ,
518+ } ) ,
519+ }
520+ ) ,
521+ } )
522+ )
523+ } )
524+
525+ avaTest ( 'Resources with patch/update case w/o update()' , test => {
526+ test . deepEqual (
527+ createRest ( root => {
528+ root . resources ( 'books' , Object . assign ( { } , DefaultController , { patch : undefined , update : undefined } ) )
529+ } ) ,
530+ make ( [ ] , [ ] , { } , {
531+ books : make (
532+ [ DefaultController . beforeEach ] ,
533+ [ DefaultController . afterEach ] ,
534+ {
535+ GET : [ DefaultController . index ] , POST : [ DefaultController . create ]
536+ } ,
537+ {
538+ ':bookId' : make ( [ ] , [ ] , {
539+ GET : [ DefaultController . read ] ,
540+ DELETE : [ DefaultController . destroy ] ,
541+ } ) ,
542+ }
543+ ) ,
544+ } )
545+ )
546+ } )
547+
548+ avaTest ( 'Resources with memberId option' , test => {
549+ test . deepEqual (
550+ createRest ( root => {
551+ root . resources ( 'books' , DefaultController , { memberId : 'demoId' } )
552+ } ) ,
553+ make ( [ ] , [ ] , { } , {
554+ books : make (
555+ [ DefaultController . beforeEach ] ,
556+ [ DefaultController . afterEach ] ,
557+ {
558+ GET : [ DefaultController . index ] , POST : [ DefaultController . create ]
559+ } ,
560+ {
561+ ':demoId' : make ( [ ] , [ ] , {
562+ GET : [ DefaultController . read ] ,
563+ PUT : [ DefaultController . update ] ,
564+ PATCH : [ DefaultController . patch ] ,
565+ DELETE : [ DefaultController . destroy ] ,
566+ } ) ,
567+ }
568+ ) ,
569+ } )
570+ )
571+ } )
0 commit comments