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

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()
})
})