* chore(deps-dev): bump prettier from 2.8.8 to 3.0.0 Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.0.0. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.0.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * reformat all the things (prettier 3) * update tests to await calls to prettier.format() --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: chris48s <git@chris-shaw.dev>
168 lines
4.3 KiB
JavaScript
168 lines
4.3 KiB
JavaScript
import { expect } from 'chai'
|
|
import { test, given } from 'sazerac'
|
|
import { validateExample, transformExample } from './examples.js'
|
|
|
|
describe('validateExample function', function () {
|
|
it('passes valid examples', function () {
|
|
const validExamples = [
|
|
{
|
|
title: 'Package manager versioning badge',
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
namedParams: { package: 'mypackage' },
|
|
keywords: ['semver', 'management'],
|
|
},
|
|
]
|
|
|
|
validExamples.forEach(example => {
|
|
expect(() =>
|
|
validateExample(example, 0, { route: {}, name: 'mockService' }),
|
|
).not.to.throw(Error)
|
|
})
|
|
})
|
|
|
|
it('rejects invalid examples', function () {
|
|
const invalidExamples = [
|
|
{},
|
|
{ staticPreview: { message: '123' } },
|
|
{
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
namedParams: { package: 'mypackage' },
|
|
exampleUrl: 'dt/mypackage',
|
|
},
|
|
{ staticPreview: { message: '123' }, pattern: 'dt/:package' },
|
|
{
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
previewUrl: 'dt/mypackage',
|
|
},
|
|
{
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
exampleUrl: 'dt/mypackage',
|
|
},
|
|
{ previewUrl: 'dt/mypackage' },
|
|
{
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
namedParams: { package: 'mypackage' },
|
|
keywords: ['a'], // Keyword too short.
|
|
},
|
|
{
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
namedParams: { package: 'mypackage' },
|
|
keywords: ['mockService'], // No title and keyword matching the class name.
|
|
},
|
|
{
|
|
title: 'Package manager versioning badge',
|
|
staticPreview: { message: '123' },
|
|
pattern: 'dt/:package',
|
|
namedParams: { package: 'mypackage' },
|
|
keywords: ['version'], // Keyword included in title.
|
|
},
|
|
]
|
|
|
|
invalidExamples.forEach(example => {
|
|
expect(() =>
|
|
validateExample(example, 0, { route: {}, name: 'mockService' }),
|
|
).to.throw(Error)
|
|
})
|
|
})
|
|
})
|
|
|
|
test(transformExample, function () {
|
|
const ExampleService = {
|
|
name: 'ExampleService',
|
|
route: {
|
|
base: 'some-service',
|
|
pattern: ':interval/:packageName',
|
|
},
|
|
defaultBadgeData: {
|
|
label: 'downloads',
|
|
},
|
|
category: 'platform-support',
|
|
}
|
|
|
|
given(
|
|
{
|
|
pattern: 'dt/:packageName',
|
|
namedParams: { packageName: 'express' },
|
|
staticPreview: { message: '50k' },
|
|
keywords: ['hello'],
|
|
},
|
|
0,
|
|
ExampleService,
|
|
).expect({
|
|
title: 'ExampleService',
|
|
example: {
|
|
pattern: '/some-service/dt/:packageName',
|
|
namedParams: { packageName: 'express' },
|
|
queryParams: {},
|
|
},
|
|
preview: {
|
|
label: 'downloads',
|
|
message: '50k',
|
|
color: 'lightgrey',
|
|
namedLogo: undefined,
|
|
style: undefined,
|
|
},
|
|
keywords: ['hello', 'platform'],
|
|
documentation: undefined,
|
|
})
|
|
|
|
given(
|
|
{
|
|
namedParams: { interval: 'dt', packageName: 'express' },
|
|
staticPreview: { message: '50k' },
|
|
keywords: ['hello'],
|
|
},
|
|
0,
|
|
ExampleService,
|
|
).expect({
|
|
title: 'ExampleService',
|
|
example: {
|
|
pattern: '/some-service/:interval/:packageName',
|
|
namedParams: { interval: 'dt', packageName: 'express' },
|
|
queryParams: {},
|
|
},
|
|
preview: {
|
|
label: 'downloads',
|
|
message: '50k',
|
|
color: 'lightgrey',
|
|
namedLogo: undefined,
|
|
style: undefined,
|
|
},
|
|
keywords: ['hello', 'platform'],
|
|
documentation: undefined,
|
|
})
|
|
|
|
given(
|
|
{
|
|
namedParams: { interval: 'dt', packageName: 'express' },
|
|
queryParams: { registry_url: 'http://example.com/' },
|
|
staticPreview: { message: '50k' },
|
|
keywords: ['hello'],
|
|
},
|
|
0,
|
|
ExampleService,
|
|
).expect({
|
|
title: 'ExampleService',
|
|
example: {
|
|
pattern: '/some-service/:interval/:packageName',
|
|
namedParams: { interval: 'dt', packageName: 'express' },
|
|
queryParams: { registry_url: 'http://example.com/' },
|
|
},
|
|
preview: {
|
|
label: 'downloads',
|
|
message: '50k',
|
|
color: 'lightgrey',
|
|
namedLogo: undefined,
|
|
style: undefined,
|
|
},
|
|
keywords: ['hello', 'platform'],
|
|
documentation: undefined,
|
|
})
|
|
})
|