mirror of
https://github.com/gotson/komga.git
synced 2025-12-22 16:33:29 +01:00
137 lines
3.7 KiB
TypeScript
137 lines
3.7 KiB
TypeScript
import {buildSpreads} from "@/functions/book-spreads";
|
|
import {PagedReaderLayout} from "@/types/enum-reader";
|
|
import {PageDtoWithUrl} from "@/types/komga-books";
|
|
|
|
describe("Single Page", () => {
|
|
const pageLayout = PagedReaderLayout.SINGLE_PAGE
|
|
|
|
test("given no pages then it should return no spreads", () => {
|
|
const pages = [] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(0)
|
|
})
|
|
|
|
test("given single page then it should return single spread with single page", () => {
|
|
const pages = [
|
|
{
|
|
number: 1,
|
|
} as PageDtoWithUrl,
|
|
] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(1)
|
|
expect(spreads[0].length).toEqual(1)
|
|
expect(spreads[0][0].number).toEqual(1)
|
|
})
|
|
})
|
|
|
|
describe("Double Pages", () => {
|
|
const pageLayout = PagedReaderLayout.DOUBLE_PAGES
|
|
|
|
test("given no pages then it should return no spreads", () => {
|
|
const pages = [] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(0)
|
|
})
|
|
|
|
test("given single page then it should return single spread with single page", () => {
|
|
const pages = [
|
|
{
|
|
number: 1,
|
|
} as PageDtoWithUrl,
|
|
] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(1)
|
|
expect(spreads[0].length).toEqual(1)
|
|
expect(spreads[0][0].number).toEqual(1)
|
|
})
|
|
|
|
test("given even pages then it should return correct spreads", () => {
|
|
const pages = [
|
|
{number: 1} as PageDtoWithUrl,
|
|
{number: 2} as PageDtoWithUrl,
|
|
{number: 3} as PageDtoWithUrl,
|
|
{number: 4} as PageDtoWithUrl,
|
|
{number: 5} as PageDtoWithUrl,
|
|
{number: 6} as PageDtoWithUrl,
|
|
] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(4)
|
|
|
|
expect(spreads[0].length).toEqual(1)
|
|
expect(spreads[0][0].number).toEqual(1)
|
|
|
|
expect(spreads[1].length).toEqual(2)
|
|
expect(spreads[1][0].number).toEqual(2)
|
|
expect(spreads[1][1].number).toEqual(3)
|
|
|
|
expect(spreads[2].length).toEqual(2)
|
|
expect(spreads[2][0].number).toEqual(4)
|
|
expect(spreads[2][1].number).toEqual(5)
|
|
|
|
expect(spreads[3].length).toEqual(1)
|
|
expect(spreads[3][0].number).toEqual(6)
|
|
})
|
|
|
|
test("given odd pages then it should return correct spreads", () => {
|
|
const pages = [
|
|
{number: 1} as PageDtoWithUrl,
|
|
{number: 2} as PageDtoWithUrl,
|
|
{number: 3} as PageDtoWithUrl,
|
|
{number: 4} as PageDtoWithUrl,
|
|
{number: 5} as PageDtoWithUrl,
|
|
] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(4)
|
|
|
|
expect(spreads[0].length).toEqual(1)
|
|
expect(spreads[0][0].number).toEqual(1)
|
|
|
|
expect(spreads[1].length).toEqual(2)
|
|
expect(spreads[1][0].number).toEqual(2)
|
|
expect(spreads[1][1].number).toEqual(3)
|
|
|
|
expect(spreads[2].length).toEqual(1)
|
|
expect(spreads[2][0].number).toEqual(4)
|
|
|
|
expect(spreads[3].length).toEqual(1)
|
|
expect(spreads[3][0].number).toEqual(5)
|
|
})
|
|
})
|
|
|
|
describe("Double Pages No Cover", () => {
|
|
const pageLayout = PagedReaderLayout.DOUBLE_NO_COVER
|
|
|
|
test("given no pages then it should return no spreads", () => {
|
|
const pages = [] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(0)
|
|
})
|
|
|
|
test("given single page then it should return single spread with single page", () => {
|
|
const pages = [
|
|
{
|
|
number: 1,
|
|
} as PageDtoWithUrl,
|
|
] as PageDtoWithUrl[]
|
|
|
|
const spreads = buildSpreads(pages, pageLayout)
|
|
|
|
expect(spreads.length).toEqual(1)
|
|
expect(spreads[0].length).toEqual(1)
|
|
expect(spreads[0][0].number).toEqual(1)
|
|
})
|
|
})
|