From 1b338e450c4d653796393273421ce837135b5acf Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 7 Apr 2020 01:46:20 +0200 Subject: [PATCH] Added test for cds.localized:false --- bookshop/app/index.cds | 3 +-- .../db/data/sap.capire.bookshop-Books_texts.csv | 1 + test/localized-data.cds | 12 ++++++++++++ test/localized-data.test.js | 17 +++++++++++++++-- 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 test/localized-data.cds diff --git a/bookshop/app/index.cds b/bookshop/app/index.cds index 468378a7..ce737b46 100644 --- a/bookshop/app/index.cds +++ b/bookshop/app/index.cds @@ -1,3 +1,2 @@ // Incorporate pre-build extensions from... -using from '../../common'; //> work-around for mediocre cds-tests -// using from '@capire/common'; +using from '@capire/common'; diff --git a/bookshop/db/data/sap.capire.bookshop-Books_texts.csv b/bookshop/db/data/sap.capire.bookshop-Books_texts.csv index fcd8a35e..94fa7a18 100644 --- a/bookshop/db/data/sap.capire.bookshop-Books_texts.csv +++ b/bookshop/db/data/sap.capire.bookshop-Books_texts.csv @@ -1,4 +1,5 @@ ID;locale;title;descr 201;de;Sturmhöhe;Sturmhöhe (Originaltitel: Wuthering Heights) ist der einzige Roman der englischen Schriftstellerin Emily Brontë (1818–1848). Der 1847 unter dem Pseudonym Ellis Bell veröffentlichte Roman wurde vom viktorianischen Publikum weitgehend abgelehnt, heute gilt er als ein Klassiker der britischen Romanliteratur des 19. Jahrhunderts. +201;fr;Les Hauts de Hurlevent;Les Hauts de Hurlevent (titre original : Wuthering Heights), parfois orthographié Les Hauts de Hurle-Vent, est l'unique roman d'Emily Brontë, publié pour la première fois en 1847 sous le pseudonyme d’Ellis Bell. Loin d'être un récit moralisateur, Emily Brontë achève néanmoins le roman dans une atmosphère sereine, suggérant le triomphe de la paix et du Bien sur la vengeance et le Mal. 207;de;Jane Eyre;Jane Eyre. Eine Autobiographie (Originaltitel: Jane Eyre. An Autobiography), erstmals erschienen im Jahr 1847 unter dem Pseudonym Currer Bell, ist der erste veröffentlichte Roman der britischen Autorin Charlotte Brontë und ein Klassiker der viktorianischen Romanliteratur des 19. Jahrhunderts. Der Roman erzählt in Form einer Ich-Erzählung die Lebensgeschichte von Jane Eyre (ausgesprochen /ˌdʒeɪn ˈɛə/), die nach einer schweren Kindheit eine Stelle als Gouvernante annimmt und sich in ihren Arbeitgeber verliebt, jedoch immer wieder um ihre Freiheit und Selbstbestimmung kämpfen muss. Als klein, dünn, blass, stets schlicht dunkel gekleidet und mit strengem Mittelscheitel beschrieben, gilt die Heldin des Romans Jane Eyre nicht zuletzt aufgrund der Kino- und Fernsehversionen der melodramatischen Romanvorlage als die bekannteste englische Gouvernante der Literaturgeschichte 252;de;Eleonora;“Eleonora” ist eine Erzählung von Edgar Allan Poe. Sie wurde 1841 erstveröffentlicht. In ihr geht es um das Paradox der Treue in der Treulosigkeit. \ No newline at end of file diff --git a/test/localized-data.cds b/test/localized-data.cds new file mode 100644 index 00000000..c49473c8 --- /dev/null +++ b/test/localized-data.cds @@ -0,0 +1,12 @@ +using { CatalogService, sap.capire.bookshop as my } from '@capire/bookshop'; +using from '@capire/common'; + +extend service CatalogService with { + @cds.localized:false + entity BooksSans as projection on my.Books { + *, //> non-localized defaults, e.g. title + key ID, + texts.title as localized_title, + texts.locale + }; +} diff --git a/test/localized-data.test.js b/test/localized-data.test.js index 882ea4e0..77c1f5eb 100644 --- a/test/localized-data.test.js +++ b/test/localized-data.test.js @@ -1,5 +1,5 @@ describe('Localized Data', () => { - const { GET, expect } = require('./capire').launch('bookshop') + const { GET, expect } = require('./capire').launch('cds serve',__dirname+'/localized-data.cds') it('serves localized $metadata documents', async () => { const { data } = await GET`/browse/$metadata?sap-language=de` @@ -66,9 +66,22 @@ describe('Localized Data', () => { name: 'Edgar Allen Poe', books: [ { title: 'The Raven', currency: { name: 'US-Dollar', symbol: '$' } }, - { title: 'Eleonora', currency: { name: 'US-Dollar', symbol: '$' } }, + { title: 'Eleonora', currency: { name: 'US-Dollar', symbol: '$' } }, ], }, ]) }) + + it('supports @cds.localized:false', async ()=>{ + const { data } = await GET(`/browse/BooksSans?&$select=title,localized_title&$expand=currency&$filter=locale eq 'de' or locale eq null`, { + headers: { 'Accept-Language': 'de' }, + }) + expect(data.value).to.containSubset([ + { title: 'Wuthering Heights', localized_title: 'Sturmhöhe', currency: { name: 'British Pound' } }, + { title: 'Jane Eyre', currency: { name: 'British Pound' } }, + { title: 'The Raven', currency: { name: 'US Dollar' } }, + { title: 'Eleonora', currency: { name: 'US Dollar' } }, + { title: 'Catweazle', currency: { name: 'Euro' } }, + ]) + }) })