diff options
Diffstat (limited to 'openecomp-ui/test/licenseModel/entitlementPools/test.js')
-rw-r--r-- | openecomp-ui/test/licenseModel/entitlementPools/test.js | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/openecomp-ui/test/licenseModel/entitlementPools/test.js b/openecomp-ui/test/licenseModel/entitlementPools/test.js index 15e1deecd6..911fb011f4 100644 --- a/openecomp-ui/test/licenseModel/entitlementPools/test.js +++ b/openecomp-ui/test/licenseModel/entitlementPools/test.js @@ -20,6 +20,7 @@ import {storeCreator} from 'sdc-app/AppStore.js'; import EntitlementPoolsActionHelper from 'sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js'; import {EntitlementPoolStoreFactory, EntitlementPoolPostFactory} from 'test-utils/factories/licenseModel/EntitlementPoolFactories.js'; import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js'; +import {LimitItemFactory, LimitPostFactory} from 'test-utils/factories/licenseModel/LimitFactories.js'; describe('Entitlement Pools Module Tests', function () { @@ -162,4 +163,173 @@ describe('Entitlement Pools Module Tests', function () { }); }); + it('Load Limits List', () => { + + const limitsList = LimitItemFactory.buildList(3); + deepFreeze(limitsList); + const store = storeCreator(); + deepFreeze(store.getState()); + + const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', limitsList); + const entitlementPool = EntitlementPoolStoreFactory.build(); + mockRest.addHandler('fetch', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return {results: limitsList}; + }); + + return EntitlementPoolsActionHelper.fetchLimits(store.dispatch, {licenseModelId: LICENSE_MODEL_ID, version, entitlementPool}).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Add Limit', () => { + + const store = storeCreator(); + deepFreeze(store.getState()); + + const limitToAdd = LimitPostFactory.build(); + + deepFreeze(limitToAdd); + + const LimitIdFromResponse = 'ADDED_ID'; + const limitAddedItem = {...limitToAdd, id: LimitIdFromResponse}; + deepFreeze(limitAddedItem); + const entitlementPool = EntitlementPoolStoreFactory.build(); + + const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', [limitAddedItem]); + + mockRest.addHandler('post', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`); + expect(data).toEqual(limitToAdd); + expect(options).toEqual(undefined); + return { + returnCode: 'OK', + value: LimitIdFromResponse + }; + }); + + mockRest.addHandler('fetch', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return {results: [limitAddedItem]}; + }); + + return EntitlementPoolsActionHelper.submitLimit(store.dispatch, + { + licenseModelId: LICENSE_MODEL_ID, + version, + entitlementPool, + limit: limitToAdd + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + + it('Delete Limit', () => { + + const limitsList = LimitItemFactory.buildList(1); + deepFreeze(limitsList); + + const store = storeCreator({ + licenseModel: { + entitlementPool: { + entitlementPoolEditor: { + limitsList + } + } + } + }); + deepFreeze(store.getState()); + + const entitlementPool = EntitlementPoolStoreFactory.build(); + const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', []); + + mockRest.addHandler('destroy', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits/${limitsList[0].id}`); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return { + results: { + returnCode: 'OK' + } + }; + }); + + mockRest.addHandler('fetch', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return {results: []}; + }); + + return EntitlementPoolsActionHelper.deleteLimit(store.dispatch, { + licenseModelId: LICENSE_MODEL_ID, + version, + entitlementPool, + limit: limitsList[0] + }).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Update Limit', () => { + + const limitsList = LimitItemFactory.buildList(1); + deepFreeze(limitsList); + const entitlementPool = EntitlementPoolStoreFactory.build(); + const store = storeCreator({ + licenseModel: { + entitlementPool: { + entitlementPoolEditor: { + limitsList + } + } + } + }); + + deepFreeze(store.getState()); + + + const previousData = limitsList[0]; + deepFreeze(previousData); + const limitId = limitsList[0].id; + + const updatedLimit = {...previousData, name: 'updatedLimit'}; + deepFreeze(updatedLimit); + const updatedLimitForPut = {...updatedLimit, id: undefined}; + + const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', [updatedLimit]); + + + mockRest.addHandler('put', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits/${limitId}`); + expect(data).toEqual(updatedLimitForPut); + expect(options).toEqual(undefined); + return {returnCode: 'OK'}; + }); + + mockRest.addHandler('fetch', ({data, options, baseUrl}) => { + expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return {results: [updatedLimit]}; + }); + + return EntitlementPoolsActionHelper.submitLimit(store.dispatch, + { + licenseModelId: LICENSE_MODEL_ID, + version, + entitlementPool, + limit: updatedLimit + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + }); |