UNPKG

rsi.cli

Version:

The swiss army knife for RSI related tasks.

69 lines (60 loc) 2.64 kB
import { loadTemplates, getSampleSchema, propertyCompare, render, parseSchemas } from "."; import * as path from "path"; import { Stream } from "stream"; import { debug } from "util"; describe("service command init", function() { it("should load all class templates", function() { loadTemplates(path.join(__dirname, "../../../../assets/class.templates/")).then((data) => { expect(data).toBeDefined(); expect(typeof data).toBe("object"); expect(Object.keys(data)).toContain("$index"); expect(Object.keys(data)).toContain("class"); expect(Object.keys(data)).toContain("enum"); expect(Object.keys(data)).toContain("namespace"); expect(Object.keys(data)).toContain("reference"); expect(Object.keys(data)).toContain("type"); } ) }) it("should render the example correctly", async () => { const schema = await getSampleSchema(); expect(!true).toBeFalsy(); }); it("should correctly compare properties", () => { expect(propertyCompare({name:"id"}, {name: "id"})).toBe(-4); expect(propertyCompare({name:"name"}, {name: "id"})).toBe(-3); expect(propertyCompare({name:"uri"}, {name: "id"})).toBe(-2); expect(propertyCompare({name:"a"}, {name: "b"})).toBe(-1); expect(propertyCompare({name:"b"}, {name: "a"})).toBe(1); expect(propertyCompare({name:"$TGRE$"}, {name: "uri"})).toBe(2); expect(propertyCompare({name:"$TGRE$"}, {name: "name"})).toBe(3); expect(propertyCompare({name:"$TGRE$"}, {name: "id"})).toBe(4); }); it("should render an empty puml", async () => { const stream = await render({namespaces:[]}); stream.on("data", (chunk) => { expect(typeof chunk).toBe("object"); expect(chunk._isVinyl).toBe(true); }) }); it("should fail rendering an undefined schema", async () => { try { await render(undefined); expect(true).toBeFalsy(); } catch (error) { expect(error.message).toBeDefined() } }); it("should fail parsing none existing schema", async () => { await expect(parseSchemas({})).rejects.toThrowError('passed empty service definition(s)'); }); it("should parse an existing schema", async () => { const schema = await parseSchemas({ dummySchema: "src/__mocks__/dummyschema.json"}); expect(schema.namespaces).toBeDefined(); expect(Array.isArray(schema.namespaces)).toBeTruthy(); expect(schema.namespaces[0].classes).toBeDefined(); expect(Array.isArray(schema.namespaces[0].classes)).toBeTruthy(); expect(schema.namespaces[0].types).toBeDefined(); expect(Array.isArray(schema.namespaces[0].types)).toBeTruthy(); }); })