/** * Created by knut on 14-11-26. */ /** * Created by knut on 14-11-23. */ var api = require('./mermaidAPI.js'); //var log = require('./logger').create(); describe('when using mermaidAPI and ',function() { describe('doing initialize ',function() { //var main; //var document; //var window; beforeEach(function () { var MockBrowser = require('mock-browser').mocks.MockBrowser; var mock = new MockBrowser(); delete global.mermaid_config; // and in the run-code inside some object global.document = mock.getDocument(); global.window = mock.getWindow(); }); it('should copy a literal into the configuration', function () { var orgConfig = api.getConfig(); expect(orgConfig.testLiteral).toBe(undefined); api.initialize({'testLiteral':true}); var config = api.getConfig(); expect(config.testLiteral).toBe(true); }); it('should copy a an object into the configuration', function () { var orgConfig = api.getConfig(); expect(orgConfig.testObject).toBe(undefined); var object = { test1:1, test2:false }; api.initialize({'testObject':object}); api.initialize({'testObject':{'test3':true}}); var config = api.getConfig(); expect(config.testObject.test1).toBe(1); expect(config.testObject.test2).toBe(false); expect(config.testObject.test3).toBe(true); expect(config.cloneCssStyles).toBe(orgConfig.cloneCssStyles); }); }); describe('checking validity of input ', function(){ it('it should return false for an invalid definiton',function(){ spyOn(global.mermaidAPI,'parseError'); var res = api.parse('this is not a mermaid diagram definition'); expect(res).toBe(false); expect(global.mermaidAPI.parseError).toHaveBeenCalled(); }); it('it should return true for a valid definiton',function(){ spyOn(global.mermaidAPI,'parseError'); var res = global.mermaid.parse('graph TD;A--x|text including URL space|B;'); expect(res).toBe(true); expect(global.mermaidAPI.parseError).not.toHaveBeenCalled(); }); }); });