Fixed tests and prepared for mocha
This commit is contained in:
4
bookshop/test/genres.cds
Normal file
4
bookshop/test/genres.cds
Normal file
@@ -0,0 +1,4 @@
|
||||
using { sap.capire.bookshop as my } from '../db/schema';
|
||||
service TestService {
|
||||
entity Genres as projection on my.Genres;
|
||||
}
|
||||
38
bookshop/test/genres.http
Normal file
38
bookshop/test/genres.http
Normal file
@@ -0,0 +1,38 @@
|
||||
#################################################
|
||||
#
|
||||
# Genres
|
||||
#
|
||||
|
||||
GET http://localhost:4004/test/Genres?
|
||||
###
|
||||
|
||||
GET http://localhost:4004/test/Genres?
|
||||
&$filter=parent_ID eq null&$select=name
|
||||
&$expand=children($select=name)
|
||||
###
|
||||
|
||||
POST http://localhost:4004/test/Genres?
|
||||
Content-Type: application/json
|
||||
|
||||
{ "ID":100, "name":"Some Sample Genres...", "children":[
|
||||
{ "ID":101, "name":"Cat", "children":[
|
||||
{ "ID":102, "name":"Kitty", "children":[
|
||||
{ "ID":103, "name":"Kitty Cat", "children":[
|
||||
{ "ID":104, "name":"Aristocat" } ]},
|
||||
{ "ID":105, "name":"Kitty Bat" } ]},
|
||||
{ "ID":106, "name":"Catwoman", "children":[
|
||||
{ "ID":107, "name":"Catalina" } ]} ]},
|
||||
{ "ID":108, "name":"Catweazle" }
|
||||
]}
|
||||
###
|
||||
|
||||
GET http://localhost:4004/test/Genres(100)?
|
||||
# &$expand=children
|
||||
# &$expand=children($expand=children($expand=children($expand=children)))
|
||||
###
|
||||
|
||||
DELETE http://localhost:4004/test/Genres(103)
|
||||
###
|
||||
|
||||
DELETE http://localhost:4004/test/Genres(100)
|
||||
###
|
||||
70
bookshop/test/genres.test.js
Normal file
70
bookshop/test/genres.test.js
Normal file
@@ -0,0 +1,70 @@
|
||||
const cds = require ('@sap/cds')
|
||||
const { expect } = require('chai') .use (require('chai-subset'))
|
||||
|
||||
describe('reading/writing hierarchies', ()=>{
|
||||
|
||||
it ('should bootstrap sqlite in-memory db', async()=>{
|
||||
await cds.deploy (__dirname+'/../db') .to ('sqlite::memory:')
|
||||
expect (cds.db) .to.exist
|
||||
expect (cds.db.model) .to.exist
|
||||
})
|
||||
|
||||
it ('should insert hierarchy of genres', ()=>{
|
||||
const { Genres } = cds.entities
|
||||
return INSERT.into (Genres) .entries (
|
||||
{ ID:100, name:'Some Sample Genres...', children:[
|
||||
{ ID:101, name:'Cat', children:[
|
||||
{ ID:102, name:'Kitty', children:[
|
||||
{ ID:103, name:'Kitty Cat', children:[
|
||||
{ ID:104, name:'Aristocat' } ]},
|
||||
{ ID:105, name:'Kitty Bat' } ]},
|
||||
{ ID:106, name:'Catwoman', children:[
|
||||
{ ID:107, name:'Catalina' } ]} ]},
|
||||
{ ID:108, name:'Catweazle' }
|
||||
]}
|
||||
)
|
||||
})
|
||||
|
||||
it ('should read genres with children', async()=>{
|
||||
const { Genres } = cds.entities
|
||||
expect (await
|
||||
|
||||
SELECT.one.from (Genres, c=>{
|
||||
c.ID, c.name.as('parent'), c.children (c=>{
|
||||
c.name.as('child')
|
||||
})
|
||||
}) .where ({name:'Cat'})
|
||||
|
||||
) .to.containSubset (
|
||||
|
||||
{ ID:101, parent:'Cat', children:[
|
||||
{ child:'Kitty' },
|
||||
{ child:'Catwoman' },
|
||||
]}
|
||||
|
||||
)
|
||||
})
|
||||
|
||||
it ('should read hierarchy of genres', async()=>{
|
||||
const { Genres } = cds.entities
|
||||
expect (await
|
||||
|
||||
SELECT.one.from (Genres, c=>{
|
||||
c.ID, c.name, c.children (c=>{ c.name },{levels:3})
|
||||
}) .where ({name:'Cat'})
|
||||
|
||||
) .to.containSubset (
|
||||
|
||||
{ ID:101, name:'Cat', children:[
|
||||
{ name:'Kitty', children:[
|
||||
{ name:'Kitty Cat', children:[
|
||||
{ name:'Aristocat' }, ]},
|
||||
{ name:'Kitty Bat' }, ]},
|
||||
{ name:'Catwoman', children:[
|
||||
{ name:'Catalina' } ]},
|
||||
]}
|
||||
|
||||
)
|
||||
})
|
||||
|
||||
})
|
||||
40
bookshop/test/requests.http
Normal file
40
bookshop/test/requests.http
Normal file
@@ -0,0 +1,40 @@
|
||||
GET http://localhost:4004/browse
|
||||
###
|
||||
|
||||
GET http://localhost:4004/browse/$metadata
|
||||
###
|
||||
|
||||
|
||||
GET http://localhost:4004/browse/Books?
|
||||
&$select=title,stock
|
||||
&$expand=currency
|
||||
#> add @capire/common to see data for currencies
|
||||
# &sap-language=de
|
||||
###
|
||||
|
||||
|
||||
GET http://localhost:4004/admin/Authors?
|
||||
# &$select=name,dateOfBirth,placeOfBirth
|
||||
&$expand=books($select=title;$expand=currency)
|
||||
#> add @capire/common to see data for currencies
|
||||
# &$filter=ID eq 101
|
||||
&sap-language=de
|
||||
###
|
||||
|
||||
|
||||
POST http://localhost:4004/browse/order
|
||||
# Run that three times to get out-of-stock message
|
||||
Content-Type: application/json
|
||||
|
||||
{ "book":201, "amount":5 }
|
||||
###
|
||||
|
||||
|
||||
|
||||
GET http://localhost:4004/browse/Genres?
|
||||
###
|
||||
|
||||
GET http://localhost:4004/browse/Genres?
|
||||
&$filter=parent_ID eq null&$select=name
|
||||
&$expand=children($select=name)
|
||||
###
|
||||
Reference in New Issue
Block a user