rest-methods
Version:
Declaratively publish functions for remote invocation.
66 lines (47 loc) • 1.68 kB
JavaScript
import { expect } from 'chai';
import MethodDocs from '../../src/server/MethodDocs';
describe('Server:MethodDocs', () => {
it('has no values', () => {
let docs = new MethodDocs();
expect(docs.description).to.equal(undefined);
expect(docs.params).to.eql({});
});
it('has a description with no parameters', () => {
let docs = new MethodDocs(' Hello World ');
expect(docs.description).to.equal('Hello World');
expect(docs.params).to.eql({});
});
it('has a multi-line description (trimmed)', () => {
let msg =
` Foo
Bar
Baz
`;
expect(new MethodDocs(msg).description).to.equal('Foo\nBar\nBaz');
});
it('has a description and parameters', () => {
let msg =
`My
Thing
@param {string} text: The thing.
@param { boolean } isEnabled - Determines - if
the thing is enabled.
@param
@param foo: With no type.
@param bar
`;
let docs = new MethodDocs(msg);
let params = docs.params;
expect(docs.description).to.equal('My\nThing');
expect(params.text.name).to.equal('text');
expect(params.text.type).to.equal('string');
expect(params.text.description).to.equal('The thing.');
expect(params.isEnabled.name).to.equal('isEnabled');
expect(params.isEnabled.type).to.equal('boolean');
expect(params.isEnabled.description).to.equal('Determines - if the thing is enabled.');
expect(params.foo.name).to.equal('foo');
expect(params.foo.type).to.equal(undefined);
expect(params.foo.description).to.equal('With no type.');
expect(params.bar).to.equal(undefined);
});
});