UNPKG

camunda-modeler

Version:

Camunda Modeler for BPMN, DMN and CMMN, based on bpmn.io

146 lines (104 loc) 3.69 kB
'use strict'; var map = require('lodash/collection/map'), forEach = require('lodash/collection/forEach'); var namespace = require('app/util/namespace'); var files = { activiti: require('test/fixtures/activiti.xml'), activitiExpected: require('test/fixtures/activitiExpected.xml'), activitiComplex: require('test/fixtures/activitiComplex.xml'), activitiComplexExpected: require('test/fixtures/activitiComplexExpected.xml') }; function getFile(type) { return files[type]; } describe('util - namespace', function() { describe('#hasExtension', function() { it('should identify an extension', function() { // given var filePath = '/app/bar.foo'; // when var hasExtension = namespace.hasExtension(filePath); // then expect(hasExtension).to.be.true; }); it('should NOT identify an extension', function() { // given var filePath = '/app/bar'; // when var hasExtension = namespace.hasExtension(filePath); // then expect(hasExtension).to.be.false; }); }); function expectCollection(collection, assertion) { return forEach(collection, function(element) { expect(element).to.equal(assertion); }); } function testCollection(collection, fn) { return map(collection, function(element) { return fn(element); }); } describe('activiti namespace', function() { var activitiFixtures = [ 'activiti', 'activitiComplex' ]; before(function() { activitiFixtures = map(activitiFixtures, function(filePath) { return getFile(filePath); }); }); it('should find Activiti namespace URL', function() { // when var results = testCollection(activitiFixtures, namespace.hasActivitiURL); // then expectCollection(results, true); }); it('should replace Activiti namespace URL with Camunda\'s', function() { // when var camundaNamespaced = testCollection(activitiFixtures, namespace.replaceActivitiURL); var results = testCollection(camundaNamespaced, namespace.hasActivitiURL); // then expectCollection(results, false); }); it('should grab Activiti namespace', function() { // when var results = testCollection(activitiFixtures, namespace.grabNamespacePrefix); // then expectCollection(results, 'activiti'); }); it('should grab Activiti namespace complex', function() { // given var xml = 'xmlns:activiti-bkw.d2="http://activiti.org/bpmn"'; // when var result = namespace.grabNamespacePrefix(xml); // then expect(result).to.equal('activiti-bkw.d2'); }); it('should replace Activiti namespace with camunda', function() { // given var activitiExpected = getFile('activitiExpected'), activitiComplexExpected = getFile('activitiComplexExpected'); // when var results = testCollection(activitiFixtures, namespace.replace); // then expect(results[0]).to.equal(activitiExpected); expect(results[1]).to.equal(activitiComplexExpected); }); it('should replace Activiti namespace with camunda complex', function() { // given var xml = [ 'xmlns:activiti-bkw.d2="http://activiti.org/bpmn"', '<activiti-bkw.d2:bar.-2 a="B"/>', '<activiti-bkw.d2:foo></activiti-bkw.d2:foo.-3>' ].join('\n'); // when var result = namespace.replace(xml); // then expect(result).to.equal([ 'xmlns:camunda="http://camunda.org/schema/1.0/bpmn"', '<camunda:bar.-2 a="B"/>', '<camunda:foo></camunda:foo.-3>' ].join('\n')); }); }); });