Spring cleaning, part 2 (#813)

* Remove OData v2 show case: Genres TreeView
* Refactored bookstore and fiori services: consolidate routing and remove deprecated files
* Add Jest configuration file with silent mode enabled
* Refactor test files: streamline imports and remove redundant code
* Change price field type to Price for better clarity and precision
* Example for separation of concerns: access-control.cds
This commit is contained in:
Daniel Hutzel
2025-03-21 09:48:11 +01:00
committed by GitHub
parent 737e766d53
commit 7b92463394
30 changed files with 130 additions and 2029 deletions

View File

@@ -1,9 +1,8 @@
const cds = require('@sap/cds')
const { expect } = cds.test ('@capire/bookshop')
describe('cap/samples - Consuming Services locally', () => {
const { expect } = cds.test ('@capire/bookshop')
it('bootstrapped the database successfully', ()=>{
const { AdminService } = cds.services
const { Authors } = AdminService.entities
@@ -33,33 +32,11 @@ describe('cap/samples - Consuming Services locally', () => {
})
})
}).where(`name like`, 'E%')
if (require('semver').gte(cds.version, '5.9.0')) {
expect(authors).to.containSubset([
{
name: 'Emily Brontë',
books: [
{
title: 'Wuthering Heights',
currency: { name: 'British Pound', symbol: '£' },
},
],
},
{
name: 'Edgar Allen Poe',
books: [
{ title: 'The Raven', currency: { name: 'US Dollar', symbol: '$' } },
{ title: 'Eleonora', currency: { name: 'US Dollar', symbol: '$' } },
],
},
])
return
}
expect(authors).to.containSubset([
{
name: 'Emily Brontë',
books: [
{
ID: 201,
title: 'Wuthering Heights',
currency: { name: 'British Pound', symbol: '£' },
},
@@ -68,8 +45,8 @@ describe('cap/samples - Consuming Services locally', () => {
{
name: 'Edgar Allen Poe',
books: [
{ ID: 251, title: 'The Raven', currency: { name: 'US Dollar', symbol: '$' } },
{ ID: 252, title: 'Eleonora', currency: { name: 'US Dollar', symbol: '$' } },
{ title: 'The Raven', currency: { name: 'US Dollar', symbol: '$' } },
{ title: 'Eleonora', currency: { name: 'US Dollar', symbol: '$' } },
],
},
])

View File

@@ -1,12 +1,9 @@
const cds = require('@sap/cds')
const { GET, POST, expect } = cds.test(__dirname+'/../bookshop')
cds.User.default = cds.User.Privileged // hard core monkey patch
describe('cap/samples - Custom Handlers', () => {
const { GET, POST, expect } = cds.test(__dirname+'/../bookshop')
beforeAll(()=>{
cds.User.default = cds.User.Privileged // hard core monkey patch
})
it('should reject out-of-stock orders', async () => {
await expect(POST `/browse/submitOrder ${{ book: 201, quantity: 5 }}`).to.be.fulfilled
await expect(POST `/browse/submitOrder ${{ book: 201, quantity: 5 }}`).to.be.fulfilled

View File

@@ -1,29 +0,0 @@
// Quick hack: suppress deprecation warnings w/ Node22 caused by http-proxy (used by OData v2 proxy)
// See also: https://github.com/http-party/node-http-proxy/pull/1666
require('util')._extend = Object.assign
const cds = require('@sap/cds')
describe('cap/samples - Fiori APIs - v2', function() {
const { GET, expect, axios } = cds.test ('@capire/fiori', '--with-mocks')
axios.defaults.auth = { username: 'alice', password: 'admin' }
// if (this.timeout) this.timeout(1e6)
it('serves $metadata documents in v2', async () => {
const { headers, data } = await GET `/odata/v2/browse/$metadata`
expect(headers).to.contain({
'content-type': 'application/xml',
'dataserviceversion': '2.0',
})
expect(data).to.contain('<EntitySet Name="GenreHierarchy" EntityType="CatalogService.GenreHierarchy"/>')
})
it('serves Books in v2', async () => {
const { data } = await GET `/odata/v2/browse/Books`
expect(data).to.containSubset({d:{results:[]}})
expect(data.d.results.length).to.be.greaterThanOrEqual(5)
})
})

View File

@@ -1,13 +1,9 @@
const cds = require('@sap/cds')
const { GET, expect } = cds.test (__dirname)
cds.User.default = cds.User.Privileged // hard core monkey patch
describe('cap/samples - Localized Data', () => {
const { GET, expect } = cds.test (__dirname)
beforeAll(()=>{
cds.User.default = cds.User.Privileged // hard core monkey patch
})
it('serves localized $metadata documents', async () => {
const { data } = await GET(`/browse/$metadata?sap-language=de`, { headers: { 'accept-language': 'de' }})
expect(data).to.contain('<Annotation Term="Common.Label" String="Währung"/>')

View File

@@ -1,8 +1,8 @@
const cds = require('@sap/cds')
const { expect } = cds.test.in(__dirname,'..')
describe('cap/samples - Messaging', ()=>{
const { expect } = cds.test.in(__dirname,'..')
const _model = '@capire/reviews'
const Reviews = 'sap.capire.reviews.Reviews'
beforeAll(()=>{

View File

@@ -1,8 +1,8 @@
const cds = require('@sap/cds')
const { GET, expect, axios } = cds.test ('@capire/bookshop')
axios.defaults.auth = { username: 'alice', password: 'admin' }
describe('cap/samples - Bookshop APIs', () => {
const { GET, expect, axios } = cds.test ('@capire/bookshop')
axios.defaults.auth = { username: 'alice', password: 'admin' }
it('serves $metadata documents in v4', async () => {
const { headers, status, data } = await GET `/browse/$metadata`