Skip to content
This repository was archived by the owner on Feb 8, 2024. It is now read-only.

Commit abc17bc

Browse files
committed
Add tests for resources()
1 parent 125ff86 commit abc17bc

1 file changed

Lines changed: 167 additions & 0 deletions

File tree

test/index.test.js

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)