Test transformExample directly (#3041)
These tests in `base.spec.js` are difficult to maintain.
This commit is contained in:
@@ -43,18 +43,6 @@ class DummyService extends BaseService {
|
||||
staticPreview: this.render({ namedParamA: 'foo', queryParamA: 'bar' }),
|
||||
keywords: ['hello'],
|
||||
},
|
||||
{
|
||||
namedParams: { namedParamA: 'World' },
|
||||
staticPreview: this.render({ namedParamA: 'foo', queryParamA: 'bar' }),
|
||||
keywords: ['hello'],
|
||||
},
|
||||
{
|
||||
pattern: ':world',
|
||||
namedParams: { world: 'World' },
|
||||
queryParams: { queryParamA: '!!!' },
|
||||
staticPreview: this.render({ namedParamA: 'foo', queryParamA: 'bar' }),
|
||||
keywords: ['hello'],
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
@@ -343,59 +331,8 @@ describe('BaseService', function() {
|
||||
queryParams: [],
|
||||
},
|
||||
})
|
||||
|
||||
const [first, second, third] = examples
|
||||
expect(first).to.deep.equal({
|
||||
title: 'DummyService',
|
||||
example: {
|
||||
pattern: '/foo/:world',
|
||||
namedParams: { world: 'World' },
|
||||
queryParams: {},
|
||||
},
|
||||
preview: {
|
||||
label: 'cat',
|
||||
message: 'Hello namedParamA: foo with queryParamA: bar',
|
||||
color: 'lightgrey',
|
||||
namedLogo: undefined,
|
||||
style: undefined,
|
||||
},
|
||||
keywords: ['hello'],
|
||||
documentation: undefined,
|
||||
})
|
||||
expect(second).to.deep.equal({
|
||||
title: 'DummyService',
|
||||
example: {
|
||||
pattern: '/foo/:namedParamA',
|
||||
namedParams: { namedParamA: 'World' },
|
||||
queryParams: {},
|
||||
},
|
||||
preview: {
|
||||
label: 'cat',
|
||||
message: 'Hello namedParamA: foo with queryParamA: bar',
|
||||
color: 'lightgrey',
|
||||
namedLogo: undefined,
|
||||
style: undefined,
|
||||
},
|
||||
keywords: ['hello'],
|
||||
documentation: undefined,
|
||||
})
|
||||
expect(third).to.deep.equal({
|
||||
title: 'DummyService',
|
||||
example: {
|
||||
pattern: '/foo/:world',
|
||||
namedParams: { world: 'World' },
|
||||
queryParams: { queryParamA: '!!!' },
|
||||
},
|
||||
preview: {
|
||||
color: 'lightgrey',
|
||||
label: 'cat',
|
||||
message: 'Hello namedParamA: foo with queryParamA: bar',
|
||||
namedLogo: undefined,
|
||||
style: undefined,
|
||||
},
|
||||
keywords: ['hello'],
|
||||
documentation: undefined,
|
||||
})
|
||||
// The in-depth tests for examples reside in transform-example.spec.js
|
||||
expect(examples).to.have.lengthOf(1)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
'use strict'
|
||||
|
||||
const { expect } = require('chai')
|
||||
const { validateExample } = require('./transform-example')
|
||||
const { test, given } = require('sazerac')
|
||||
const { validateExample, transformExample } = require('./transform-example')
|
||||
|
||||
describe('validateExample function', function() {
|
||||
it('passes valid examples', function() {
|
||||
@@ -72,3 +73,96 @@ describe('validateExample function', function() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
test(transformExample, function() {
|
||||
const ExampleService = {
|
||||
name: 'ExampleService',
|
||||
route: {
|
||||
base: 'some-service',
|
||||
pattern: ':interval/:packageName',
|
||||
},
|
||||
defaultBadgeData: {
|
||||
label: 'downloads',
|
||||
},
|
||||
}
|
||||
|
||||
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'],
|
||||
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'],
|
||||
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'],
|
||||
documentation: undefined,
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user