Skip to content

Commit 3cbf63b

Browse files
authored
chore: Add additional e2e tests (#679)
## Description This adds e2e for "org"-filtering and add ExtendedStatus to the test data. This also fixes some clean up issues, making sure a test run purges all data it inserts. ## Related Issue(s) N/A ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required)
1 parent 74a8a30 commit 3cbf63b

File tree

6 files changed

+26
-11
lines changed

6 files changed

+26
-11
lines changed

tests/k6/common/token.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function fetchToken(url, tokenOptions, type) {
5858
export function getServiceOwnerTokenFromGenerator(tokenOptions = null) {
5959
let fullTokenOptions = extend({}, defaultTokenOptions, tokenOptions);
6060
const url = `http://altinn-testtools-token-generator.azurewebsites.net/api/GetEnterpriseToken?env=tt02&scopes=${encodeURIComponent(fullTokenOptions.scopes)}&org=${fullTokenOptions.orgName}&orgNo=${fullTokenOptions.orgNo}&ttl=${tokenTtl}`;
61-
return fetchToken(url, fullTokenOptions, `service owner (orgno:${fullTokenOptions.orgNo})`);
61+
return fetchToken(url, fullTokenOptions, `service owner (orgno:${fullTokenOptions.orgNo} orgName:${fullTokenOptions.orgName})`);
6262
}
6363

6464
export function getEnduserTokenFromGenerator(tokenOptions = null) {

tests/k6/tests/enduser/dialogSearch.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ export default function () {
3737
let titleForExpiresAtItem = "expires_" + uuidv4();
3838
let titleForUpdatedItem = "updated_" + uuidv4();
3939
let titleForLastItem = "last_" + uuidv4();
40+
let idForCustomOrg = uuidv4();
4041
let createdAfter = (new Date()).toISOString(); // We use this on all tests to hopefully avoid clashing with unrelated dialogs
4142
let defaultFilter = "?CreatedAfter=" + createdAfter + "&Party=" + defaultParty;
43+
let auxOrg = "digdir";
4244

4345
describe('Arrange: Create some dialogs to test against', () => {
4446

@@ -69,10 +71,14 @@ export default function () {
6971
setTitle(dialogs[++d], titleForExpiresAtItem);
7072
setExpiresAt(dialogs[d], new Date("2034-03-07T10:13:00Z"));
7173

74+
dialogs[++d].id = idForCustomOrg;
75+
7276
setTitle(dialogs[dialogs.length-1], titleForLastItem);
7377

78+
let tokenOptions = {};
7479
dialogs.forEach((d) => {
75-
let r = postSO("dialogs", d);
80+
tokenOptions = (d.id == idForCustomOrg) ? { orgName: auxOrg } : {};
81+
let r = postSO("dialogs", d, null, tokenOptions);
7682
expectStatusFor(r).to.equal(201);
7783
dialogIds.push(r.json());
7884
});
@@ -163,6 +169,14 @@ export default function () {
163169
expect(r.json().items[0], 'party').to.have.property("serviceResource").that.equals(auxResource);
164170
});
165171

172+
describe('List with org filter', () => {
173+
let r = getEU('dialogs/' + defaultFilter + '&Org=' + auxOrg);
174+
expectStatusFor(r).to.equal(200);
175+
expect(r, 'response').to.have.validJsonBody();
176+
expect(r.json(), 'response json').to.have.property("items").with.lengthOf(1);
177+
expect(r.json().items[0], 'org').to.have.property("org").that.equals(auxOrg);
178+
});
179+
166180
describe("Cleanup", () => {
167181
dialogIds.forEach((d) => {
168182
let r = purgeSO("dialogs/" + d);

tests/k6/tests/serviceowner/authorization.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, expectStatusFor, getSO, postSO, putSO, patchSO, deleteSO } from '../../common/testimports.js'
1+
import { describe, expect, expectStatusFor, getSO, postSO, putSO, patchSO, deleteSO, purgeSO } from '../../common/testimports.js'
22
import { default as dialogToInsert } from './testdata/01-create-dialog.js';
33

44
export default function () {
@@ -115,8 +115,8 @@ export default function () {
115115
});
116116

117117
// Finally, cleanup by deleting the dialog
118-
describe('Allow deleting dialog as valid serviceowner', () => {
119-
let r = deleteSO('dialogs/' + dialogId);
118+
describe('Allow purging dialog as valid serviceowner', () => {
119+
let r = purgeSO('dialogs/' + dialogId);
120120
expect(r.status, 'response status').to.equal(204);
121121
});
122122

tests/k6/tests/serviceowner/concurrency.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, expectStatusFor, postSO, postSOAsync, deleteSO } from '../../common/testimports.js'
1+
import { describe, expect, expectStatusFor, postSO, postSOAsync, purgeSO } from '../../common/testimports.js'
22
import { default as dialogToInsert } from './testdata/01-create-dialog.js';
33

44
export default function () {
@@ -26,7 +26,7 @@ export default function () {
2626
const results = await Promise.all(promises);
2727

2828
// Cleanup here, as we're in another thread
29-
deleteSO('dialogs/' + dialogId);
29+
purgeSO('dialogs/' + dialogId);
3030

3131
results.forEach((r) => {
3232
expect(r.status, 'status code for concurrently added child entity').to.equal(201);

tests/k6/tests/serviceowner/dialogCreatePatchDelete.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, expectStatusFor, getSO, postSO, deleteSO, patchSO, uuidv4 } from '../../common/testimports.js'
1+
import { describe, expect, expectStatusFor, getSO, postSO, purgeSO, patchSO, uuidv4 } from '../../common/testimports.js'
22
import { default as dialogToInsert } from './testdata/01-create-dialog.js';
33

44
export default function () {
@@ -69,8 +69,8 @@ export default function () {
6969
expect(r.json(), 'dialog').to.have.nested.property("apiActions[0].endpoints[1].url").to.equal(newApiActionEndpointUrl);
7070
});
7171

72-
describe('Perform dialog delete', () => {
73-
let r = deleteSO('dialogs/' + dialogId);
72+
describe('Perform dialog purge', () => {
73+
let r = purgeSO('dialogs/' + dialogId);
7474
expectStatusFor(r).to.equal(204);
7575
});
7676
}

tests/k6/tests/serviceowner/testdata/01-create-dialog.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export default function () {
2020
{ "type": "Title", "value": [ { "cultureCode": "nb_NO", "value": "Skjema for rapportering av et eller annet" } ] },
2121
{ "type": "SenderName", "value": [ { "cultureCode": "nb_NO", "value": "Avsendernavn" } ] },
2222
{ "type": "Summary", "value": [ { "cultureCode": "nb_NO", "value": "Et sammendrag her. Maks 200 tegn, ingen HTML-støtte. Påkrevd. Vises i liste." } ] },
23-
{ "type": "AdditionalInfo", "value": [ { "cultureCode": "nb_NO", "value": "Utvidet forklaring (enkel HTML-støtte, inntil 1023 tegn). Ikke påkrevd. Vises kun i detaljvisning." } ] }
23+
{ "type": "AdditionalInfo", "value": [ { "cultureCode": "nb_NO", "value": "Utvidet forklaring (enkel HTML-støtte, inntil 1023 tegn). Ikke påkrevd. Vises kun i detaljvisning." } ] },
24+
{ "type": "ExtendedStatus", "value": [ { "cultureCode": "nb_NO", "value": "Utvidet Status" } ] },
2425
],
2526
"guiActions": [
2627
{

0 commit comments

Comments
 (0)