IGNITE-9262 Web Console: Fixed generation of project on Configuration screen.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bab61f13 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bab61f13 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bab61f13 Branch: refs/heads/ignite-9340 Commit: bab61f133270248ab2974c751b1e1b20ca6d64b3 Parents: c43876e Author: Vasiliy Sisko <[email protected]> Authored: Wed Aug 22 16:54:32 2018 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Wed Aug 22 16:54:32 2018 +0700 ---------------------------------------------------------------------- .../services/ConfigurationResource.js | 4 +- .../services/ConfigurationResource.spec.js | 78 ++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/bab61f13/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.js b/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.js index 2dab8a3..269eb93 100644 --- a/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.js +++ b/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.js @@ -27,7 +27,9 @@ export default function ConfigurationResourceService($http) { .then(({data}) => data) .catch(({data}) => Promise.reject(data)); }, - populate({spaces, clusters, caches, igfss, domains}) { + populate(data) { + const {spaces, clusters, caches, igfss, domains} = _.cloneDeep(data); + _.forEach(clusters, (cluster) => { cluster.caches = _.filter(caches, ({_id}) => _.includes(cluster.caches, _id)); http://git-wip-us.apache.org/repos/asf/ignite/blob/bab61f13/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.spec.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.spec.js b/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.spec.js new file mode 100644 index 0000000..d52d94a --- /dev/null +++ b/modules/web-console/frontend/app/components/page-configure/services/ConfigurationResource.spec.js @@ -0,0 +1,78 @@ +/* + * 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 configurationResource from './ConfigurationResource'; + +import { suite, test } from 'mocha'; +import { assert } from 'chai'; + +const CHECKED_CONFIGURATION = { + spaces: [{ + _id: '1space', + name: 'Test space' + }], + clusters: [{ + _id: '1cluster', + space: '1space', + name: 'Test cluster', + caches: ['1cache'], + models: ['1model'], + igfss: ['1igfs'] + }], + caches: [{ + _id: '1cache', + space: '1space', + name: 'Test cache', + clusters: ['1cluster'], + models: ['1model'] + }], + domains: [{ + _id: '1model', + space: '1space', + name: 'Test model', + clusters: ['1cluster'], + caches: ['1cache'] + }], + igfss: [{ + _id: '1igfs', + space: '1space', + name: 'Test IGFS', + clusters: ['1cluster'] + }] +}; + +suite('ConfigurationResourceTestsSuite', () => { + test('ConfigurationResourceService correctly populate data', async() => { + const service = configurationResource(null); + const converted = _.cloneDeep(CHECKED_CONFIGURATION); + const res = await service.populate(converted); + + assert.notEqual(res.clusters[0], converted.clusters[0]); + + assert.deepEqual(converted.clusters[0].caches, CHECKED_CONFIGURATION.clusters[0].caches); + assert.deepEqual(converted.clusters[0].models, CHECKED_CONFIGURATION.clusters[0].models); + assert.deepEqual(converted.clusters[0].igfss, CHECKED_CONFIGURATION.clusters[0].igfss); + + assert.deepEqual(converted.caches[0].clusters, CHECKED_CONFIGURATION.caches[0].clusters); + assert.deepEqual(converted.caches[0].models, CHECKED_CONFIGURATION.caches[0].models); + + assert.deepEqual(converted.domains[0].clusters, CHECKED_CONFIGURATION.domains[0].clusters); + assert.deepEqual(converted.domains[0].caches, CHECKED_CONFIGURATION.domains[0].caches); + + assert.deepEqual(converted.igfss[0].clusters, CHECKED_CONFIGURATION.igfss[0].clusters); + }); +});
