2021-11-05 18:39:36 +01:00
|
|
|
import { HtmlValidate } from 'html-validate'
|
2023-01-31 02:37:41 +01:00
|
|
|
import { expect, it } from 'vitest'
|
2020-07-05 13:30:25 +02:00
|
|
|
|
2023-09-04 02:29:45 +02:00
|
|
|
import sampleResume from 'resume-schema/sample.resume.json' assert { type: 'json' }
|
2023-10-08 01:23:03 +02:00
|
|
|
import { render } from '../index.js'
|
2020-07-05 13:30:25 +02:00
|
|
|
|
2023-09-04 02:29:45 +02:00
|
|
|
const resume = {
|
|
|
|
...sampleResume,
|
|
|
|
meta: {
|
|
|
|
...sampleResume.meta,
|
2023-09-17 00:54:31 +02:00
|
|
|
themeOptions: {
|
|
|
|
colors: {
|
|
|
|
background: ['lightgray', 'darkgray'],
|
|
|
|
},
|
2023-09-04 02:29:45 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
basics: {
|
|
|
|
...sampleResume.basics,
|
|
|
|
image: 'image.jpg',
|
|
|
|
},
|
|
|
|
}
|
2021-06-20 16:23:55 +02:00
|
|
|
|
2023-01-31 02:37:41 +01:00
|
|
|
it('renders a resume', () => {
|
|
|
|
expect(render(resume)).toMatchSnapshot()
|
2020-07-05 13:30:25 +02:00
|
|
|
})
|
2020-07-18 22:44:17 +02:00
|
|
|
|
2023-07-22 02:35:49 +02:00
|
|
|
it('renders valid HTML', async () => {
|
2020-07-18 22:44:17 +02:00
|
|
|
const htmlvalidate = new HtmlValidate({
|
2023-10-08 01:23:03 +02:00
|
|
|
extends: ['html-validate:recommended', 'html-validate:prettier'],
|
2023-01-30 02:38:45 +01:00
|
|
|
rules: {
|
2023-10-08 01:23:03 +02:00
|
|
|
'doctype-style': 'off',
|
2023-09-04 02:29:45 +02:00
|
|
|
'no-inline-style': 'off',
|
2023-01-30 02:38:45 +01:00
|
|
|
'no-trailing-whitespace': 'off',
|
|
|
|
'tel-non-breaking': 'off',
|
|
|
|
},
|
2020-07-18 22:44:17 +02:00
|
|
|
})
|
|
|
|
|
|
|
|
const {
|
|
|
|
results: [{ messages } = {}],
|
2023-07-22 02:35:49 +02:00
|
|
|
} = await htmlvalidate.validateString(render(resume))
|
2020-07-18 22:44:17 +02:00
|
|
|
|
2023-01-31 02:37:41 +01:00
|
|
|
expect(messages).toBeUndefined()
|
2020-07-18 22:44:17 +02:00
|
|
|
})
|