UNPKG

parse-openapi

Version:

OpenAPI v3 parser

98 lines (97 loc) 4.96 kB
"use strict"; 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();