diff --git a/core/base-service/base.spec.js b/core/base-service/base.spec.js index a3e4b7fe26..f4b27b7ad0 100644 --- a/core/base-service/base.spec.js +++ b/core/base-service/base.spec.js @@ -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) }) }) diff --git a/core/base-service/transform-example.spec.js b/core/base-service/transform-example.spec.js index 558cd6e523..52a767e6db 100644 --- a/core/base-service/transform-example.spec.js +++ b/core/base-service/transform-example.spec.js @@ -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, + }) +})