Fixed tests and prepared for mocha

This commit is contained in:
Daniel
2020-03-03 09:08:11 +01:00
parent 531b6cbf69
commit ea01007716
7 changed files with 11 additions and 13 deletions

4
bookshop/test/genres.cds Normal file
View 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
View 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)
###

View 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' } ]},
]}
)
})
})

View 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)
###