mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-15 05:41:34 +00:00
73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
import books from '../../fixtures/bookMetadata/index'
|
|
import data from '../../fixtures/token.json'
|
|
const headers = { Authorization: 'Bearer ' + data.bearerToken }
|
|
|
|
|
|
describe('Compare the metadata in the library to the reference files', () => {
|
|
let libraryID, libraryItems
|
|
|
|
before(() => {
|
|
|
|
// Get the library ID of env.AUDIOBOOK_LIBRARY_NAME
|
|
cy.request({
|
|
url: '/api/libraries/',
|
|
headers: headers,
|
|
}).then((res) => {
|
|
expect(res.status).to.eq(200)
|
|
libraryID = res.body.libraries.find(x => x.name == Cypress.env('AUDIOBOOK_LIBRARY_NAME')).id
|
|
})
|
|
|
|
// Load all library items
|
|
cy.then(() => {
|
|
cy.request({
|
|
url: `api/libraries/${libraryID}/items`,
|
|
headers: headers,
|
|
body: { limit: 0 }
|
|
}).then((res) => {
|
|
expect(res.status).to.eq(200)
|
|
libraryItems = res.body
|
|
})
|
|
|
|
})
|
|
})
|
|
|
|
|
|
it('Check that the library contains more than zero items', () => {
|
|
expect(libraryItems.total).to.be.greaterThan(0)
|
|
expect(libraryItems.total).to.equal(libraryItems.results.length)
|
|
})
|
|
|
|
|
|
for (const expectedMetadata of books) {
|
|
it(`Verify metadata for "${expectedMetadata.relPath}"`, function () {
|
|
|
|
// Use the relPath to search for the library item
|
|
const thisItem = libraryItems.results.find(x => x.relPath == expectedMetadata.relPath)
|
|
expect(thisItem).to.have.property("id")
|
|
|
|
cy.request({
|
|
url: `/api/items/${thisItem.id}`,
|
|
headers: headers,
|
|
qs: { expanded: 0 }
|
|
}).then((res) => {
|
|
expect(res.status).to.eq(200)
|
|
|
|
expect(res.body).to.deep.include.all.keys(expectedMetadata)
|
|
expect(res.body.media.metadata.authors.map(e => ({ name: e.name }))).to.have.deep.members(expectedMetadata.media.metadata.authors)
|
|
expect(res.body.media.metadata.series.map(e => ({ name: e.name, sequence: e.sequence }))).to.have.deep.members(expectedMetadata.media.metadata.series)
|
|
expect(res.body).to.nested.deep.include({
|
|
'media.metadata.title': expectedMetadata.media.metadata.title,
|
|
'media.metadata.subtitle': expectedMetadata.media.metadata.subtitle,
|
|
'media.metadata.narrators': expectedMetadata.media.metadata.narrators,
|
|
'media.metadata.description': expectedMetadata.media.metadata.description,
|
|
'media.metadata.genres': expectedMetadata.media.metadata.genres,
|
|
// 'media.metadata.publisher': expectedMetadata.media.metadata.publisher,
|
|
'media.metadata.asin': expectedMetadata.media.metadata.asin,
|
|
'media.chapters': expectedMetadata.media.chapters,
|
|
})
|
|
|
|
})
|
|
})
|
|
}
|
|
|
|
})
|