blob: 9c949d602dd08a88b772def58e434e650d8287dc [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Provider from './ConfigurationDownload';
import {suite, test} from 'mocha';
import {assert} from 'chai';
import {spy} from 'sinon';
const mocks = () => new Map([
['messages', {
showError: spy()
}],
['activitiesData', {
post: spy()
}],
['configuration', {
populate: (value) => Promise.resolve(value),
_clusters: [],
read() {
return Promise.resolve({clusters: this._clusters});
}
}],
['summaryZipper', spy((value) => Promise.resolve(value))],
['Version', {
currentSbj: {
getValue() {
return '2.0';
}
}
}],
['$q', Promise],
['$rootScope', {
IgniteDemoMode: true
}],
['PageConfigure', {
getClusterConfiguration: () => Promise.resolve({clusters: [{_id: 1, name: 'An Cluster'}]})
}],
['IgniteConfigurationResource', {
populate: () => Promise.resolve({clusters: []})
}]
]);
const saverMock = () => ({
saveAs: spy()
});
suite('page-configure, ConfigurationDownload service', () => {
test('fails and shows error message when summary zipper fails', () => {
const service = new Provider(...mocks().values());
const cluster = {_id: 1, name: 'An Cluster'};
service.configuration._clusters = [cluster];
service.summaryZipper = () => Promise.reject({message: 'Summary zipper failed.'});
return service.downloadClusterConfiguration(cluster)
.then(() => Promise.reject('Should not happen'))
.catch(() => {
assert.equal(
service.messages.showError.getCall(0).args[0],
'Failed to generate project files. Summary zipper failed.',
'shows correct error message when summary zipper fails'
);
});
});
test('calls correct dependcies', () => {
const service = new Provider(...mocks().values());
service.saver = saverMock();
const cluster = {_id: 1, name: 'An Cluster'};
service.configuration._clusters = [cluster];
return service.downloadClusterConfiguration(cluster)
.then(() => {
assert.deepEqual(
service.activitiesData.post.getCall(0).args[0],
{action: '/configuration/download'},
'submits activity data'
);
assert.deepEqual(service.summaryZipper.getCall(0).args, [{
cluster,
data: {},
IgniteDemoMode: true,
targetVer: '2.0'
}], 'summary zipper arguments are correct');
assert.deepEqual(service.saver.saveAs.getCall(0).args, [
{
cluster,
data: {},
IgniteDemoMode: true,
targetVer: '2.0'
},
'An_Cluster-project.zip'
], 'saver arguments are correct');
});
});
});