Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion webui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"test": "mocha --reporter spec src/test/*-test.js",
"start": "ojet serve web --server-only",
"build:release": "ojet build web --release",
"eslint": "npx eslint src/js/*.js src/js/models/*.js src/js/utils/*.js src/js/viewModels/*.js",
"eslint": "npx eslint src/js/*.js src/js/models/*.js src/js/utils/*.js src/js/viewModels/*.js src/test/*.js",
"jet-audit": "ojaf"
},
"dependencies": {
Expand Down
48 changes: 24 additions & 24 deletions webui/src/test/common-utilities-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
* @ignore
*/
'use strict';

const expect = require('chai').expect;
const {after, before, describe, it} = require("mocha");
const { after, before, describe, it } = require('mocha');
const requirejs = require('requirejs');
const testHelper = require('./test-helper');

Expand All @@ -30,53 +31,52 @@ describe('general utilities', function () {
describe('equality', function() {
it('returns false when comparing different types', function () {
expect(utils.equals(null, undefined)).to.equal(false);
expect(utils.equals(1, "a string")).to.equal(false);
expect(utils.equals([1, 2, 3], {one: "value"})).to.equal(false);
})
expect(utils.equals(1, 'a string')).to.equal(false);
expect(utils.equals([1, 2, 3], {one: 'value'})).to.equal(false);
});

it('returns true when comparing equal scalars', function () {
expect(utils.equals(undefined, undefined)).to.equal(true);
expect(utils.equals(1, 8 - 7)).to.equal(true);
expect(utils.equals(true, true)).to.equal(true);
})
});

it('returns false when comparing unequal scalars', function () {
expect(utils.equals(true, false)).to.equal(false);
expect(utils.equals("abcd", "xyz")).to.equal(false);
expect(utils.equals('abcd', 'xyz')).to.equal(false);
expect(utils.equals(1, 5)).to.equal(false);
})
});

it('returns false when comparing unequal objects', function () {
expect(utils.equals({first: 1, second: "both"}, {first: 1, second: "neither"})).to.equal(false);
expect(utils.equals({first: 1, second: "both"}, {second: "both", first: 1, third: null})).to.equal(false);
expect(utils.equals({first: {nest: 1}, second: "both"}, {second: "both", first: [1]})).to.equal(false);
})
expect(utils.equals({first: 1, second: 'both'}, {first: 1, second: 'neither'})).to.equal(false);
expect(utils.equals({first: 1, second: 'both'}, {second: 'both', first: 1, third: null})).to.equal(false);
expect(utils.equals({first: {nest: 1}, second: 'both'}, {second: 'both', first: [1]})).to.equal(false);
});

it('returns true when comparing equal objects', function () {
expect(utils.equals({first: 1, second: "both"}, {first: 1, second: "both"})).to.equal(true);
expect(utils.equals({first: 1, second: "both"}, {second: "both", first: 1})).to.equal(true);
expect(utils.equals({first: {nest: 1}, second: "both"}, {second: "both", first: {nest: 1}})).to.equal(true);
})
expect(utils.equals({first: 1, second: 'both'}, {first: 1, second: 'both'})).to.equal(true);
expect(utils.equals({first: 1, second: 'both'}, {second: 'both', first: 1})).to.equal(true);
expect(utils.equals({first: {nest: 1}, second: 'both'}, {second: 'both', first: {nest: 1}})).to.equal(true);
});

it('returns true when comparing unequal arrays', function () {
expect(utils.equals([1, 2, 3], [3, 1, 2])).to.equal(false);
expect(utils.equals([{age: 12, height: 50}], [{age: 12, height: 60}])).to.equal(false);
})
});

it('returns true when comparing equal arrays', function () {
expect(utils.equals([1, 2, 3], [1, 2, 3])).to.equal(true);
expect(utils.equals([{age: 12, height: 50}], [{age: 12, height: 50}])).to.equal(true);
})

})
});
});

// Kubernetes uses a modified version of the DNS-1123 standard.
describe('Kubernetes names', function() {
it ('recognizes legal Kubernetes names', function() {
expect(utils.isLegalK8sName('aa')).to.be.true;
expect(utils.isLegalK8sName('aa-bb-cc')).to.be.true;
expect(utils.isLegalK8sName('aa12-b3')).to.be.true;
})
});

it ('recognizes illegal Kubernetes names', function() {
expect(utils.isLegalK8sName(7)).to.be.false;
Expand All @@ -86,13 +86,13 @@ describe('general utilities', function () {
expect(utils.isLegalK8sName('-aa')).to.be.false;
expect(utils.isLegalK8sName('aa-')).to.be.false;
expect(utils.isLegalK8sName('aa-bb-cc-dd-ee-ff-gg-hh-ii-jj-kk-ll-mm-nn-oo-pp-qq-rr-ss-tt-uu-vv-ww-xx-yy-zz')).to.be.false;
})
});

it ('does not change legal Kubernetes names', function() {
expect(utils.toLegalK8sName('aa')).to.equal('aa');
expect(utils.toLegalK8sName('aa-bb-cc')).to.equal('aa-bb-cc');
expect(utils.toLegalK8sName('aa12-b3')).to.equal('aa12-b3');
})
});

it ('converts illegal to legal names', function() {
expect(utils.toLegalK8sName('AA')).to.equal('aa');
Expand All @@ -103,6 +103,6 @@ describe('general utilities', function () {
expect(utils.toLegalK8sName('aa--')).to.equal('aa');
expect(utils.toLegalK8sName('aa-bb-cc-dd-ee-ff-gg-hh-ii-jj-kk-ll-mm-nn-oo-pp-qq-rr-ss-tt-uu-vv-ww-xx-yy-zz'))
.to.equal('aa-bb-cc-dd-ee-ff-gg-hh-ii-jj-kk-ll-mm-nn-oo-pp-qq-rr-ss-tt-uu-');
})
})
});
});
});
13 changes: 6 additions & 7 deletions webui/src/test/image-design-view-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
* @ignore
*/
'use strict';
const {AccUtilsStub, ArrayDataProviderStub} = require('./view-stubs')

const { AccUtilsStub, ArrayDataProviderStub } = require('./view-stubs');
const expect = require('chai').expect;
const {after, before, beforeEach, describe, it} = require("mocha");
const { after, before, beforeEach, describe, it } = require('mocha');
const requirejs = require('requirejs');
const testHelper = require('./test-helper');

Expand Down Expand Up @@ -37,20 +38,18 @@ describe('image-design-view', function () {

after(function() {
testHelper.remove();
})
});

beforeEach(function () {
viewModel = new ImageViewModel(i18next, project, accUtilsStub, ko, dialogHelper, ArrayDataProviderStub);
})
});

describe('when connected() is called', function () {

it('should announce that it was loaded', function () {
viewModel.connected();

expect(accUtilsStub.announcement).to.equal('Image Design View page loaded.');
expect(accUtilsStub.level).to.equal('assertive');
});

})
});
});
53 changes: 15 additions & 38 deletions webui/src/test/ingress-definition-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,20 @@
* @ignore
*/
'use strict';

const chai = require('chai');
const expect = chai.expect;
const wkt_assertions = require('./wkt-assertions');
chai.use(wkt_assertions);

const {after, before, beforeEach, describe, it} = require('mocha');

const { after, before, describe, it } = require('mocha');
const requirejs = require('requirejs');
const testHelper = require('./test-helper');
const jsyaml = require('js-yaml');

describe('ingress-definition', function () {
let IngressDefn;
let ingress;
let props;
let settings;
let wdtModel;
let utils;
let jsonQuery;
let propertyNames;
let ko;
let ingressResource;

function getContents() {
const json = {};
ingress.writeTo(json);
return json;
}

const voyagerIngress = {'name': 'Route1', 'virtualHost' : 'domain1.org',
'targetServiceNameSpace' : 'domain1-ns', 'targetService' : 'domain1-cluster-cluster-1', 'targetPort' : '8109',
'path': '/myapp', 'ssl' : false };
Expand All @@ -45,15 +30,9 @@ describe('ingress-definition', function () {

before(function (done) {
testHelper.install();
requirejs(['models/ingress-definition', 'knockout', 'utils/observable-properties', 'utils/common-utilities', 'utils/ingress-resource-generator', 'json-query'],
function (constructor, knockout, observableUtils, generalUtils, IngressResourceGenerator, jq) {
IngressDefn = constructor;
ko = knockout;
props = observableUtils;
utils = generalUtils;
requirejs(['utils/ingress-resource-generator'],
function (IngressResourceGenerator) {
ingressResource = new IngressResourceGenerator();
jsonQuery = jq;
propertyNames = props.createArrayProperty();
done();
});
});
Expand All @@ -62,26 +41,24 @@ describe('ingress-definition', function () {
testHelper.remove();
});

beforeEach(function () {
ingress = new IngressDefn();
});

describe('generate', function() {

it('generate voyager ingress', function () {
const yaml = ingressResource.createVoyagerRoutesAsYaml(voyagerIngress);
const json = jsyaml.load(yaml);
expect(json['apiVersion']).to.equal('voyager.appscode.com/v1beta1');
});

// it('generate nginx ingress', function () {
// const yaml = ingress.createNginxRoutesAsYaml(genericIngress);
// console.log(yaml);
// //expect(json['apiVersion']).to.equal('voyager.appscode.com/v1beta1');
// });
});


it('generate nginx ingress', function () {
const yaml = ingressResource.createNginxRoutesAsYaml(genericIngress);
const json = jsyaml.load(yaml);
expect(json['apiVersion']).to.equal('networking.k8s.io/v1');
});

it('generate traefik ingress', function () {
const yaml = ingressResource.createTraefikRoutesAsYaml(genericIngress);
const json = jsyaml.load(yaml);
expect(json['apiVersion']).to.equal('networking.k8s.io/v1');
});
});
});

21 changes: 10 additions & 11 deletions webui/src/test/model-page-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,27 @@
* @ignore
*/
'use strict';
const {AccUtilsStub, ArrayDataProviderStub} = require('./view-stubs')

const { AccUtilsStub, ArrayDataProviderStub } = require('./view-stubs');
const expect = require('chai').expect;
const {after, before, beforeEach, describe, it} = require("mocha");
const { after, before, beforeEach, describe, it, xit } = require('mocha');
const requirejs = require('requirejs');
const testHelper = require('./test-helper');

describe('model-page', function () {
const accUtilsStub = new AccUtilsStub();

let ModelPageImpl;
let project;
let ko;
let i18next;

let viewModel;

before(function (done) {
testHelper.install();
requirejs(['viewModels/model-page-impl', 'knockout', 'models/wkt-project', 'utils/i18n'],
function (viewModelConstructor, knockout, loadedProject, i18n) {
requirejs(['viewModels/model-page-impl', 'knockout', 'utils/i18n'],
function (viewModelConstructor, knockout, i18n) {
ModelPageImpl = viewModelConstructor;
ko = knockout;
project = loadedProject;
i18next = i18n;
done();
});
Expand All @@ -44,13 +42,14 @@ describe('model-page', function () {
return {
sync: function() {},
go: function() {}
}
};
}
}
}
};

function ModuleRouterAdapterStub() {
}

beforeEach(function () {
viewModel = new ModelPageImpl(args, accUtilsStub, ko, i18next, ModuleRouterAdapterStub, ArrayDataProviderStub);
});
Expand All @@ -68,11 +67,11 @@ describe('model-page', function () {

it('the initial selection is the code view', function () {
expect(viewModel.selectedItem()).to.equal('model-code-view');
})
});

xit('offers view choices choices', function () {
const navData = viewModel.dataProvider.data;
expect(entry(navData, 'path', 'model-design-view')).to.have.property('label', 'page-design-view');
expect(entry(navData, 'path', 'model-code-view')).to.have.property('label', 'page-code-view');
})
});
});
Loading