UNPKG

maestro-cli-roku

Version:

command line tools for maestro-roku projects

95 lines (94 loc) 4.54 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); var chai_1 = require("chai"); var BrsClass_1 = require("../classSupport/BrsClass"); var NameSpace_1 = require("../namespaceSupport/NameSpace"); var Feedback_1 = require("../utils/Feedback"); var File_1 = require("./File"); var ProjectFileMap_1 = require("./ProjectFileMap"); var config = require('../../test/testProcessorConfig.json'); var members = new Map(); describe('Project File map', function () { beforeEach(function () { Feedback_1.resetFeedback(); }); describe('Initialization', function () { it('correctly initializes with default files and import dictionary', function () { var fileMap = new ProjectFileMap_1.ProjectFileMap(); chai_1.expect(fileMap.allFiles).to.not.be.empty; chai_1.expect(fileMap.allNamespaces).to.not.be.empty; chai_1.expect(__spread(fileMap.allNamespaces.values()).length).to.equal(1); chai_1.expect(__spread(fileMap.allFiles.values()).length).to.equal(1); chai_1.expect(fileMap.getFileByPkgPath('source/MRuntime.brs')).to.not.be.null; chai_1.expect(fileMap.getNamespaceByName('MRuntime')).to.not.be.null; chai_1.expect(Feedback_1.getFeedbackErrors()).to.be.empty; }); it('correctly initializes with preset files and import dictionary, which are used for unit testing', function () { var file = new File_1.File('fsPath', 'projectPath', 'filename.brs', '.brs'); var ns = new NameSpace_1.Namespace('T', file); file.namespace = ns; var fileMap = new ProjectFileMap_1.ProjectFileMap(); fileMap.addFile(file); chai_1.expect(fileMap.getFileByPkgPath('projectPath/filename.brs')).to.equal(file); chai_1.expect(fileMap.getNamespaceByName('T')).to.equal(ns); }); }); describe('addClass', function () { var fileMap = new ProjectFileMap_1.ProjectFileMap(); var namespace = null; beforeEach(function () { Feedback_1.resetFeedback(); }); it('adds class', function () { var file = new File_1.File('fsPath', 'projectPath', 'filename.brs', '.brs'); namespace = new NameSpace_1.Namespace('test', file); file.namespace = namespace; var brsClass = new BrsClass_1.BrsClass(file, 'MyClass'); brsClass.members = members; fileMap.addClass(brsClass); chai_1.expect(fileMap.allClasses.length).to.equal(1); chai_1.expect(fileMap.classesByClassName.get('MyClass')).to.equal(brsClass); chai_1.expect(Feedback_1.getFeedbackErrors()).to.be.empty; }); it('adds second class', function () { var file = new File_1.File('fsPath', 'projectPath', 'filename2.brs', '.brs'); file.namespace = namespace; var brsClass = new BrsClass_1.BrsClass(file, 'MyClass2'); brsClass.members = members; fileMap.addClass(brsClass); chai_1.expect(fileMap.allClasses.length).to.equal(2); chai_1.expect(fileMap.classesByClassName.get('MyClass2')).to.equal(brsClass); chai_1.expect(Feedback_1.getFeedbackErrors()).to.be.empty; }); it('add duplicate class', function () { var file = new File_1.File('fsPath', 'projectPath', 'filename.brs', '.brs'); file.namespace = namespace; var brsClass = new BrsClass_1.BrsClass(file, 'MyClass'); brsClass.members = members; fileMap.addClass(brsClass); chai_1.expect(fileMap.allClasses.length).to.equal(2); chai_1.expect(fileMap.classesByClassName.get('MyClass')).to.not.equal(brsClass); chai_1.expect(Feedback_1.getFeedbackErrors()).to.not.be.empty; }); }); });