UNPKG

@benev/nubs

Version:
108 lines 4.18 kB
import { expect } from "cynic"; import { converter_1 } from "./elements/context/bindings/converters/1.js"; import { migrate_versions } from "./elements/context/bindings/utils/migrate_versions.js"; import { detect_bindings_version } from "./elements/context/bindings/utils/detect_bindings_version.js"; export default { "version migrator": { "calls the converter": async () => { let called_v1_converter = false; const converters = new Map() .set(1, () => { called_v1_converter = true; }); migrate_versions({ converters, version: 1, data: {} }); expect(called_v1_converter).ok(); }, "actually converts the data": async () => { const converters = new Map() .set(1, (a) => a += 1); const result = migrate_versions({ converters, version: 1, data: 100 }); expect(result.data).equals(101); expect(result.version).equals(2); }, "calls converters from 2 to 4": async () => { const called = new Map(); const converters = new Map() .set(1, () => { called.set(1, true); }) .set(2, () => { called.set(2, true); }) .set(3, () => { called.set(3, true); }) .set(4, () => { called.set(4, true); }); migrate_versions({ converters, version: 2, data: {} }); expect(called.get(1)).not.ok(); expect(called.get(2)).ok(); expect(called.get(3)).ok(); expect(called.get(4)).ok(); }, }, "detecting bindings versions": { "can detect version of bindings1": async () => { const test_bindings = { humanoid: { pointer: { look: ["Pointer", "Lookpad"], }, key: { open_menu: ["KeyQ", "Backquote"], }, }, menu: { key: { close_menu: ["KeyQ", "Backquote"], }, }, }; const version = detect_bindings_version(test_bindings); expect(version).equals(1); }, "can detect version from modern bindings (v2 and up)": async () => { const test_bindings = { version: 2, modes: { humanoid: { pointer: { look: [["Pointer"], ["Lookpad"]], }, key: { open_menu: [["KeyQ"], ["Backquote"]], }, }, menu: { key: { close_menu: [["KeyQ"], ["Backquote"]], }, }, } }; const version = detect_bindings_version(test_bindings); expect(version).equals(2); }, }, "bindings converters": { "bindings 1 to 2": { "can convert empty bindings1 to bindings2": async () => { const b1 = {}; const b2 = converter_1(b1); const modes_array = Object.entries(b2.modes); expect(modes_array.length).equals(0); }, "can convert ordinary bindings1 to bindings2": async () => { const test_bindings = { humanoid: { pointer: { look: ["Pointer", "Lookpad"], }, key: { open_menu: ["KeyQ", "Backquote"], }, }, menu: { key: { close_menu: ["KeyQ", "Backquote"], }, }, }; const b2 = converter_1(test_bindings); expect(b2.version).equals(2); }, }, }, }; //# sourceMappingURL=tests.test.js.map