| | import { beforeAll, describe, expect, test } from 'vitest' |
| |
|
| | import { get } from '@/tests/helpers/e2etest' |
| |
|
| | const makeURL = (pathname: string): string => |
| | `/api/article/body?${new URLSearchParams({ pathname })}` |
| |
|
| | describe('article body api', () => { |
| | beforeAll(() => { |
| | |
| | |
| | |
| | if (!process.env.ROOT) { |
| | console.warn( |
| | 'WARNING: The article body tests require the ROOT environment variable to be set to the fixture root', |
| | ) |
| | } |
| | }) |
| |
|
| | test('happy path', async () => { |
| | const res = await get(makeURL('/en/get-started/start-your-journey/hello-world')) |
| | expect(res.statusCode).toBe(200) |
| | expect(res.body).toContain('## Introduction') |
| | expect(res.body).toContain('This is just a test.') |
| | expect(res.headers['content-type']).toContain('text/markdown') |
| | }) |
| |
|
| | test('octicons auto-generate aria-labels', async () => { |
| | const res = await get(makeURL('/en/get-started/start-your-journey/hello-world')) |
| | expect(res.statusCode).toBe(200) |
| |
|
| | |
| | expect(res.body).toContain('aria-label="check icon"') |
| | expect(res.body).toContain('aria-label="git branch icon"') |
| | }) |
| |
|
| | test('octicons with custom aria-labels use the custom value', async () => { |
| | const res = await get(makeURL('/en/get-started/start-your-journey/hello-world')) |
| | expect(res.statusCode).toBe(200) |
| |
|
| | |
| | expect(res.body).toContain('aria-label="Supported"') |
| | expect(res.body).toContain('aria-label="Not supported"') |
| | }) |
| |
|
| | test('octicons with other attributes still get auto-generated aria-labels', async () => { |
| | const res = await get(makeURL('/en/get-started/start-your-journey/hello-world')) |
| | expect(res.statusCode).toBe(200) |
| |
|
| | |
| | expect(res.body).toContain('aria-label="rocket icon"') |
| | expect(res.body).toContain('width="32"') |
| | }) |
| |
|
| | test('a pathname that does not exist', async () => { |
| | const res = await get(makeURL('/en/never/heard/of')) |
| | expect(res.statusCode).toBe(404) |
| | const { error } = JSON.parse(res.body) |
| | expect(error).toBe("No page found for '/en/never/heard/of'") |
| | }) |
| |
|
| | test('non-article pages return error', async () => { |
| | |
| | const res = await get(makeURL('/en/get-started')) |
| | expect(res.statusCode).toBe(403) |
| | const { error } = JSON.parse(res.body) |
| | expect(error).toContain("isn't yet available in markdown") |
| | }) |
| | }) |
| |
|