You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.1 KiB
29 lines
1.1 KiB
import { describe, expect, it } from 'vitest' |
|
import { |
|
gutenbergCoverImageUrl, |
|
parseGutenbergEbookId, |
|
resolveGutenbergCoverImageUrl |
|
} from '@/lib/gutenberg-cover' |
|
|
|
describe('gutenberg-cover', () => { |
|
it('parses ebook id from gutenberg.org URLs', () => { |
|
expect(parseGutenbergEbookId('https://www.gutenberg.org/ebooks/58363')).toBe('58363') |
|
expect(parseGutenbergEbookId('https://www.gutenberg.org/ebooks/58363/')).toBe('58363') |
|
expect(parseGutenbergEbookId('https://www.gutenberg.org/files/21020/21020-h/21020-h.htm')).toBe( |
|
'21020' |
|
) |
|
}) |
|
|
|
it('builds medium cover URL', () => { |
|
expect(gutenbergCoverImageUrl('58363')).toBe( |
|
'https://www.gutenberg.org/cache/epub/58363/pg58363.cover.medium.jpg' |
|
) |
|
}) |
|
|
|
it('resolveGutenbergCoverImageUrl requires gutenberg source', () => { |
|
expect( |
|
resolveGutenbergCoverImageUrl('https://www.gutenberg.org/ebooks/58363') |
|
).toBe('https://www.gutenberg.org/cache/epub/58363/pg58363.cover.medium.jpg') |
|
expect(resolveGutenbergCoverImageUrl('https://example.com/book')).toBeUndefined() |
|
}) |
|
})
|
|
|