backport of commit 4fd4a0693d (#21402)

Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com>
This commit is contained in:
hc-github-team-secure-vault-core
2023-07-06 16:01:32 -04:00
committed by GitHub
parent 8a9e9bf92c
commit d66520d12b
2 changed files with 20 additions and 15 deletions

View File

@@ -1,10 +1,16 @@
import ApplicationSerializer from '../application'; import ApplicationSerializer from '../application';
export default ApplicationSerializer.extend({ export default class ClientsConfigSerializer extends ApplicationSerializer {
// these attrs are readOnly
attrs = {
billingStartTimestamp: { serialize: false },
minimumRetentionMonths: { serialize: false },
reportingEnabled: { serialize: false },
};
normalizeResponse(store, primaryModelClass, payload, id, requestType) { normalizeResponse(store, primaryModelClass, payload, id, requestType) {
if (!payload.data) { if (!payload.data) {
// CBS TODO: Remove this if block once API is published return super.normalizeResponse(...arguments);
return this._super(store, primaryModelClass, payload, id, requestType);
} }
const normalizedPayload = { const normalizedPayload = {
id: payload.id, id: payload.id,
@@ -13,11 +19,11 @@ export default ApplicationSerializer.extend({
enabled: payload.data.enabled?.includes('enable') ? 'On' : 'Off', enabled: payload.data.enabled?.includes('enable') ? 'On' : 'Off',
}, },
}; };
return this._super(store, primaryModelClass, normalizedPayload, id, requestType); return super.normalizeResponse(store, primaryModelClass, normalizedPayload, id, requestType);
}, }
serialize() { serialize() {
const json = this._super(...arguments); const json = super.serialize(...arguments);
if (json.enabled === 'On' || json.enabled === 'Off') { if (json.enabled === 'On' || json.enabled === 'Off') {
const oldEnabled = json.enabled; const oldEnabled = json.enabled;
json.enabled = oldEnabled === 'On' ? 'enable' : 'disable'; json.enabled = oldEnabled === 'On' ? 'enable' : 'disable';
@@ -28,5 +34,5 @@ export default ApplicationSerializer.extend({
} }
delete json.queries_available; delete json.queries_available;
return json; return json;
}, }
}); }

View File

@@ -13,7 +13,7 @@ module('Integration | Component | client count config', function (hooks) {
this.router = this.owner.lookup('service:router'); this.router = this.owner.lookup('service:router');
this.transitionStub = sinon.stub(this.router, 'transitionTo'); this.transitionStub = sinon.stub(this.router, 'transitionTo');
const store = this.owner.lookup('service:store'); const store = this.owner.lookup('service:store');
this.createModel = (enabled = 'enable', reporting_enabled = false, minimum_retention_months = 0) => { this.createModel = (enabled = 'enable', reporting_enabled = false, minimum_retention_months = 24) => {
store.pushPayload('clients/config', { store.pushPayload('clients/config', {
modelName: 'clients/config', modelName: 'clients/config',
id: 'foo', id: 'foo',
@@ -51,7 +51,7 @@ module('Integration | Component | client count config', function (hooks) {
this.server.put('/sys/internal/counters/config', (schema, req) => { this.server.put('/sys/internal/counters/config', (schema, req) => {
const { enabled, retention_months } = JSON.parse(req.requestBody); const { enabled, retention_months } = JSON.parse(req.requestBody);
const expected = { enabled: 'enable', retention_months: 5 }; const expected = { enabled: 'enable', retention_months: 24 };
assert.deepEqual(expected, { enabled, retention_months }, 'Correct data sent in PUT request'); assert.deepEqual(expected, { enabled, retention_months }, 'Correct data sent in PUT request');
return {}; return {};
}); });
@@ -75,11 +75,11 @@ module('Integration | Component | client count config', function (hooks) {
assert assert
.dom('[data-test-inline-error-message]') .dom('[data-test-inline-error-message]')
.hasText( .hasText(
'Retention period must be greater than or equal to 0.', 'Retention period must be greater than or equal to 24.',
'Validation error shows for incorrect retention period' 'Validation error shows for incorrect retention period'
); );
await fillIn('[data-test-input="retentionMonths"]', 5); await fillIn('[data-test-input="retentionMonths"]', 24);
await click('[data-test-clients-config-save]'); await click('[data-test-clients-config-save]');
assert.dom('.modal.is-active').exists('Modal renders'); assert.dom('.modal.is-active').exists('Modal renders');
assert assert
@@ -149,7 +149,7 @@ module('Integration | Component | client count config', function (hooks) {
this.server.put('/sys/internal/counters/config', (schema, req) => { this.server.put('/sys/internal/counters/config', (schema, req) => {
const { enabled, retention_months } = JSON.parse(req.requestBody); const { enabled, retention_months } = JSON.parse(req.requestBody);
const expected = { enabled: 'enable', retention_months: 5 }; const expected = { enabled: 'enable', retention_months: 24 };
assert.deepEqual(expected, { enabled, retention_months }, 'Correct data sent in PUT request'); assert.deepEqual(expected, { enabled, retention_months }, 'Correct data sent in PUT request');
return {}; return {};
}); });
@@ -160,8 +160,7 @@ module('Integration | Component | client count config', function (hooks) {
<div id="modal-wormhole"></div> <div id="modal-wormhole"></div>
<Clients::Config @model={{this.model}} @mode="edit" /> <Clients::Config @model={{this.model}} @mode="edit" />
`); `);
await fillIn('[data-test-input="retentionMonths"]', 24);
await fillIn('[data-test-input="retentionMonths"]', 5);
await click('[data-test-clients-config-save]'); await click('[data-test-clients-config-save]');
}); });
}); });