68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
const cds = require("../../test/cds");
|
|
const { GET, expect } = cds.test("media-store").in(__dirname, "../../");
|
|
|
|
const {
|
|
FIRST_EMPLOYEE,
|
|
SECOND_EMPLOYEE_WITH_EXPANDED_FIELDS,
|
|
ALL_ALBUMS_WITH_TRACKS_BY_ARTIST,
|
|
CUSTOMER_WITH_THEIR_SUPPORT_REP,
|
|
EIGHTH_ALBUM_TRACKS_COUNT,
|
|
} = require("./data/media-service.mock");
|
|
|
|
describe("Media service", () => {
|
|
it("should bootstrap the services successfully", () => {
|
|
const { MediaService, db } = cds.services;
|
|
const { Employees } = MediaService.entities;
|
|
|
|
expect(MediaService).not.to.be.undefined;
|
|
expect(db).not.to.be.undefined;
|
|
expect(Employees).not.to.be.undefined;
|
|
});
|
|
|
|
describe("Employees", () => {
|
|
it("should return employee (ID=1)", async () => {
|
|
const { data } = await GET("/media/Employees(1)");
|
|
expect(data).to.eql(FIRST_EMPLOYEE);
|
|
});
|
|
|
|
it("should return employee (ID=2) with subordinates and whom he reports to", async () => {
|
|
const { data } = await GET(
|
|
`/media/Employees(2)?$expand=subordinates,reportsTo`
|
|
);
|
|
expect(data).to.eql(SECOND_EMPLOYEE_WITH_EXPANDED_FIELDS);
|
|
});
|
|
});
|
|
|
|
describe("Albums", () => {
|
|
it("should return all albums with tracks by artist", async () => {
|
|
const { data } = await GET(
|
|
`/media/Albums?$filter=artist_ID eq 1&$expand=tracks`
|
|
);
|
|
expect(data).to.eql(ALL_ALBUMS_WITH_TRACKS_BY_ARTIST);
|
|
});
|
|
});
|
|
|
|
describe("Customers", () => {
|
|
it("should return customer with their invoices", async () => {
|
|
const { data } = await GET(`/media/Customers(1)?$expand=supportRep`);
|
|
expect(data).to.eql(CUSTOMER_WITH_THEIR_SUPPORT_REP);
|
|
});
|
|
});
|
|
|
|
describe("Playlists", () => {
|
|
it("should return playlist with their tracks", async () => {
|
|
const { data } = await GET(`/media/Customers(1)?$expand=supportRep`);
|
|
expect(data).to.eql(CUSTOMER_WITH_THEIR_SUPPORT_REP);
|
|
});
|
|
});
|
|
|
|
describe("Tracks", () => {
|
|
it("should return the number of tracks by album", async () => {
|
|
const { data } = await GET(
|
|
`/media/PlaylistTrack/$count?$filter=playlist_ID eq 8`
|
|
);
|
|
expect(data).to.eql(EIGHTH_ALBUM_TRACKS_COUNT);
|
|
});
|
|
});
|
|
});
|