parse-openapi
Version:
OpenAPI v3 parser
98 lines (97 loc) • 4.96 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const uvu_1 = require("uvu");
const strict_1 = __importDefault(require("assert/strict"));
const getType_1 = require("./getType");
(0, uvu_1.test)('getType should convert int', () => {
const type = (0, getType_1.getType)('int');
strict_1.default.deepEqual(type.type, 'number');
strict_1.default.deepEqual(type.base, 'number');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, []);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should convert string', () => {
const type = (0, getType_1.getType)('string');
strict_1.default.deepEqual(type.type, 'string');
strict_1.default.deepEqual(type.base, 'string');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, []);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should convert string array', () => {
const type = (0, getType_1.getType)('array[string]');
strict_1.default.deepEqual(type.type, 'string[]');
strict_1.default.deepEqual(type.base, 'string');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, []);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should convert template with primary', () => {
const type = (0, getType_1.getType)('#/components/schemas/Link[string]');
strict_1.default.deepEqual(type.type, 'Link<string>');
strict_1.default.deepEqual(type.base, 'Link');
strict_1.default.deepEqual(type.template, 'string');
strict_1.default.deepEqual(type.imports, ['Link']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should convert template with model', () => {
const type = (0, getType_1.getType)('#/components/schemas/Link[Model]');
strict_1.default.deepEqual(type.type, 'Link<Model>');
strict_1.default.deepEqual(type.base, 'Link');
strict_1.default.deepEqual(type.template, 'Model');
strict_1.default.deepEqual(type.imports, ['Link', 'Model']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should have double imports', () => {
const type = (0, getType_1.getType)('#/components/schemas/Link[Link]');
strict_1.default.deepEqual(type.type, 'Link<Link>');
strict_1.default.deepEqual(type.base, 'Link');
strict_1.default.deepEqual(type.template, 'Link');
strict_1.default.deepEqual(type.imports, ['Link', 'Link']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should support dot', () => {
const type = (0, getType_1.getType)('#/components/schemas/model.000');
strict_1.default.deepEqual(type.type, 'model_000');
strict_1.default.deepEqual(type.base, 'model_000');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, ['model_000']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should support dashes', () => {
const type = (0, getType_1.getType)('#/components/schemas/some_special-schema');
strict_1.default.deepEqual(type.type, 'some_special_schema');
strict_1.default.deepEqual(type.base, 'some_special_schema');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, ['some_special_schema']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should support dollar sign', () => {
const type = (0, getType_1.getType)('#/components/schemas/$some+special+schema');
strict_1.default.deepEqual(type.type, '$some_special_schema');
strict_1.default.deepEqual(type.base, '$some_special_schema');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, ['$some_special_schema']);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should support multiple base types', () => {
const type = (0, getType_1.getType)(['string', 'int']);
strict_1.default.deepEqual(type.type, 'string | number');
strict_1.default.deepEqual(type.base, 'string | number');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, []);
strict_1.default.deepEqual(type.isNullable, false);
});
(0, uvu_1.test)('getType should support multiple nullable types', () => {
const type = (0, getType_1.getType)(['string', 'null']);
strict_1.default.deepEqual(type.type, 'string');
strict_1.default.deepEqual(type.base, 'string');
strict_1.default.deepEqual(type.template, null);
strict_1.default.deepEqual(type.imports, []);
strict_1.default.deepEqual(type.isNullable, true);
});
uvu_1.test.run();