maestro-roku-bsc-plugin
Version:
Visual studio plugin for maestro brightscript development
79 lines (76 loc) • 2.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const brighterscript_1 = require("brighterscript");
const ImportProcessor_1 = require("./ImportProcessor");
let importProcessor;
describe('build time imports', () => {
beforeEach(() => {
importProcessor = new ImportProcessor_1.default({
'buildTimeImports': {
'IAuthProvider': ['pkg:/source/AuthManager.bs']
}
});
});
it('adds build time imports', () => {
let program = new brighterscript_1.Program({});
program.setFile('source/AuthManager.bs', `
class someClass
end class
`);
program.validate();
let file = new brighterscript_1.BrsFile('/tmp/t.bs', 'source/t.bs', program);
file.parse(`
import "pkg:/source/mixins/FocusMixin.bs"
import "build:/IAuthProvider"
function Init() as void
m.log.I("Init")
m.screenStack = createObject("roArray", 0, true)
m.top.topScreen = invalid
end function
`);
importProcessor.processDynamicImports(file, program);
(0, chai_1.expect)(file.getDiagnostics()).to.be.empty;
});
it('empty build time imports', () => {
let program = new brighterscript_1.Program({});
program.setFile('source/AuthManager.bs', `
class someClass
end class
`);
program.validate();
let file = new brighterscript_1.BrsFile('/tmp/t.bs', 'source/t.bs', program);
file.parse(`
import "pkg:/source/mixins/FocusMixin.bs"
import "build:/IAuthProvider"
function Init() as void
m.log.I("Init")
m.screenStack = createObject("roArray", 0, true)
m.top.topScreen = invalid
end function
`);
importProcessor.processDynamicImports(file, program);
(0, chai_1.expect)(file.getDiagnostics()).to.be.empty;
});
it('does not add diagnostics for empty build time imports, and parses file correctly', () => {
importProcessor = new ImportProcessor_1.default({
'buildTimeImports': {
'IAuthProvider': []
}
});
let program = new brighterscript_1.Program({});
let file = new brighterscript_1.BrsFile('/tmp/t.bs', 'source/t.bs', program);
file.parse(`
import "pkg:/source/mixins/FocusMixin.bs"
import "build:/IAuthProvider"
function Init() as void
m.log.I("Init")
m.screenStack = createObject("roArray", 0, true)
m.top.topScreen = invalid
end function
`);
importProcessor.processDynamicImports(file, program);
(0, chai_1.expect)(file.getDiagnostics()).to.have.length(0);
});
});
//# sourceMappingURL=ImportProcessor.spec.js.map