Skip to content

Commit

Permalink
Extent testUtil to delete all shared Attributes (#424)
Browse files Browse the repository at this point in the history
* test: add possibility to only delete shared Attributes

* test: use speaking names
  • Loading branch information
Milena-Czierlinski authored Feb 19, 2025
1 parent 0b20d47 commit cfa647c
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 109 deletions.
18 changes: 1 addition & 17 deletions packages/runtime/test/consumption/attributes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ beforeEach(async () => {
services1.eventBus.reset();
services2.eventBus.reset();
services3.eventBus.reset();
await cleanupAttributes(services1, services2, services3, appService);
await cleanupAttributes([services1, services2, services3, appService]);
});

describe("get attribute(s)", () => {
Expand Down Expand Up @@ -1859,10 +1859,6 @@ describe(SucceedRelationshipAttributeAndNotifyPeerUseCase.name, () => {
});
});

afterEach(async () => {
await cleanupAttributes();
});

test("should succeed a relationship attribute and notify peer", async () => {
const result = await services1.consumption.attributes.succeedRelationshipAttributeAndNotifyPeer({
predecessorId: sOwnSharedRelationshipAttribute.id,
Expand Down Expand Up @@ -2216,10 +2212,6 @@ describe("Get (shared) versions of attribute", () => {
}

describe(GetVersionsOfAttributeUseCase.name, () => {
afterEach(async () => {
await cleanupAttributes();
});

test("should get all versions of a repository attribute", async () => {
await setUpRepositoryAttributeVersions();
for (const version of sRepositoryAttributeVersions) {
Expand Down Expand Up @@ -2305,10 +2297,6 @@ describe("Get (shared) versions of attribute", () => {
await setUpIdentityAttributeVersions();
});

afterEach(async () => {
await cleanupAttributes();
});

test("should get only latest shared version per peer of a repository attribute", async () => {
for (const version of sRepositoryAttributeVersions) {
const result1 = await services1.consumption.attributes.getSharedVersionsOfAttribute({ attributeId: version.id });
Expand Down Expand Up @@ -2460,10 +2448,6 @@ describe("DeleteAttributeUseCases", () => {
repositoryAttributeVersion1 = (await services1.consumption.attributes.getAttribute({ id: ownSharedIdentityAttributeVersion1.shareInfo!.sourceAttribute! })).value;
});

afterEach(async () => {
await cleanupAttributes();
});

describe(DeleteRepositoryAttributeUseCase.name, () => {
test("should delete a repository attribute", async () => {
const deletionResult = await services1.consumption.attributes.deleteRepositoryAttribute({ attributeId: repositoryAttributeVersion0.id });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ let services1: TestRuntimeServices;
let services2: TestRuntimeServices;

beforeEach(async () => {
await cleanupAttributes(services1, services2);
await cleanupAttributes([services1, services2]);
});

beforeAll(async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import { AcceptReadAttributeRequestItemParametersWithNewAttributeJSON, DecideRequestItemParametersJSON } from "@nmshd/consumption";
import {
AcceptReadAttributeRequestItemParametersWithExistingAttributeJSON,
AcceptReadAttributeRequestItemParametersWithNewAttributeJSON,
DecideRequestItemParametersJSON
} from "@nmshd/consumption";
import { IdentityAttributeQuery, IQLQuery, PersonName, PersonNameJSON, ReadAttributeRequestItem } from "@nmshd/content";
import {
ConsumptionServices,
Expand All @@ -18,6 +22,7 @@ import {
TransportServices
} from "../../../src";
import {
cleanupAttributes,
establishRelationship,
exchangeAndAcceptRequestByMessage,
exchangeMessageWithRequest,
Expand Down Expand Up @@ -47,9 +52,10 @@ let responseItems: DecideRequestItemParametersJSON[];

afterAll(() => serviceProvider.stop());

beforeEach(function () {
beforeEach(async function () {
eventBus1.reset();
eventBus2.reset();
await cleanupAttributes([runtimeServices1, runtimeServices2], true);
});

describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () => {
Expand All @@ -69,17 +75,19 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>
await establishRelationship(transportServices1, transportServices2);
address1 = (await transportServices1.account.getIdentityInfo()).value.address;
address2 = (await transportServices2.account.getIdentityInfo()).value.address;
const attribute = await consumptionServices2.attributes.createRepositoryAttribute({
content: {
value: PersonName.from({
honorificPrefix: "Dr.",
givenName: "Heinz",
middleName: "Gerhard",
surname: "Ranzig",
honorificSuffix: "von Warnermünde"
}).toJSON()
}
});
const repositoryAttribute = (
await consumptionServices2.attributes.createRepositoryAttribute({
content: {
value: PersonName.from({
honorificPrefix: "anHonorificPrefix",
givenName: "aGivenName",
middleName: "aMiddleName",
surname: "aSurname",
honorificSuffix: "anHonorificSuffix"
}).toJSON()
}
})
).value;

requestContent = {
content: {
Expand All @@ -96,7 +104,7 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>
peer: address2
};

responseItems = [{ accept: true, newAttribute: attribute.value.content }] as AcceptReadAttributeRequestItemParametersWithNewAttributeJSON[];
responseItems = [{ accept: true, existingAttributeId: repositoryAttribute.id }] as AcceptReadAttributeRequestItemParametersWithExistingAttributeJSON[];
}, 30000);

test("check the MessageDVO for the sender", async () => {
Expand Down Expand Up @@ -166,11 +174,11 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>
expect(resultItem.type).toBe("RepositoryAttributeDVO");
expect(resultItem.content["@type"]).toBe("IdentityAttribute");
expect(resultItem.content.value["@type"]).toBe("PersonName");
expect((resultItem.content.value as PersonNameJSON).givenName).toBe("Heinz");
expect((resultItem.content.value as PersonNameJSON).surname).toBe("Ranzig");
expect((resultItem.content.value as PersonNameJSON).middleName).toBe("Gerhard");
expect((resultItem.content.value as PersonNameJSON).honorificPrefix).toBe("Dr.");
expect((resultItem.content.value as PersonNameJSON).honorificSuffix).toBe("von Warnermünde");
expect((resultItem.content.value as PersonNameJSON).givenName).toBe("aGivenName");
expect((resultItem.content.value as PersonNameJSON).surname).toBe("aSurname");
expect((resultItem.content.value as PersonNameJSON).middleName).toBe("aMiddleName");
expect((resultItem.content.value as PersonNameJSON).honorificPrefix).toBe("anHonorificPrefix");
expect((resultItem.content.value as PersonNameJSON).honorificSuffix).toBe("anHonorificSuffix");
});

test("check the MessageDVO for the recipient after acceptance", async () => {
Expand Down Expand Up @@ -232,11 +240,11 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>

const attributeValue = responseItem.attribute.value as PersonNameJSON;
expect(attributeValue["@type"]).toBe("PersonName");
expect(attributeValue.givenName).toBe("Heinz");
expect(attributeValue.surname).toBe("Ranzig");
expect(attributeValue.middleName).toBe("Gerhard");
expect(attributeValue.honorificPrefix).toBe("Dr.");
expect(attributeValue.honorificSuffix).toBe("von Warnermünde");
expect(attributeValue.givenName).toBe("aGivenName");
expect(attributeValue.surname).toBe("aSurname");
expect(attributeValue.middleName).toBe("aMiddleName");
expect(attributeValue.honorificPrefix).toBe("anHonorificPrefix");
expect(attributeValue.honorificSuffix).toBe("anHonorificSuffix");
expect(requestItemDVO.response).toStrictEqual(responseItem);

const attributeResult = await consumptionServices2.attributes.getAttributes({
Expand All @@ -249,11 +257,11 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>

const returnedValue = attributeResult.value[numberOfAttributes - 1].content.value as PersonNameJSON;
expect(returnedValue["@type"]).toBe("PersonName");
expect(returnedValue.givenName).toBe("Heinz");
expect(returnedValue.surname).toBe("Ranzig");
expect(returnedValue.middleName).toBe("Gerhard");
expect(returnedValue.honorificPrefix).toBe("Dr.");
expect(returnedValue.honorificSuffix).toBe("von Warnermünde");
expect(returnedValue.givenName).toBe("aGivenName");
expect(returnedValue.surname).toBe("aSurname");
expect(returnedValue.middleName).toBe("aMiddleName");
expect(returnedValue.honorificPrefix).toBe("anHonorificPrefix");
expect(returnedValue.honorificSuffix).toBe("anHonorificSuffix");

expect(responseItem.attributeId).toStrictEqual(attributeResult.value[numberOfAttributes - 1].id);
expect(returnedValue).toStrictEqual(attributeValue);
Expand Down Expand Up @@ -317,11 +325,11 @@ describe("ComplexReadAttributeRequestItemDVO with IdentityAttributeQuery", () =>

const returnedValue = attributeResult.value[numberOfAttributes - 1].content.value as PersonNameJSON;
expect(returnedValue["@type"]).toBe("PersonName");
expect(returnedValue.givenName).toBe("Heinz");
expect(returnedValue.surname).toBe("Ranzig");
expect(returnedValue.middleName).toBe("Gerhard");
expect(returnedValue.honorificPrefix).toBe("Dr.");
expect(returnedValue.honorificSuffix).toBe("von Warnermünde");
expect(returnedValue.givenName).toBe("aGivenName");
expect(returnedValue.surname).toBe("aSurname");
expect(returnedValue.middleName).toBe("aMiddleName");
expect(returnedValue.honorificPrefix).toBe("anHonorificPrefix");
expect(returnedValue.honorificSuffix).toBe("anHonorificSuffix");

expect(responseItem.attributeId).toStrictEqual(attributeResult.value[numberOfAttributes - 1].id);
expect(returnedValue).toStrictEqual(responseItem.attribute.content.value);
Expand All @@ -348,11 +356,11 @@ describe("ComplexReadAttributeRequestItemDVO with IQL", () => {
const attribute = await consumptionServices2.attributes.createRepositoryAttribute({
content: {
value: PersonName.from({
honorificPrefix: "Dr.",
givenName: "Heinz",
middleName: "Gerhard",
surname: "Ranzig",
honorificSuffix: "von Warnermünde"
honorificPrefix: "anHonorificPrefix",
givenName: "aGivenName",
middleName: "aMiddleName",
surname: "aSurname",
honorificSuffix: "anHonorificSuffix"
}).toJSON()
}
});
Expand Down Expand Up @@ -432,11 +440,11 @@ describe("ComplexReadAttributeRequestItemDVO with IQL", () => {
expect(resultItem.type).toBe("RepositoryAttributeDVO");
expect(resultItem.content["@type"]).toBe("IdentityAttribute");
expect(resultItem.content.value["@type"]).toBe("PersonName");
expect((resultItem.content.value as PersonNameJSON).givenName).toBe("Heinz");
expect((resultItem.content.value as PersonNameJSON).surname).toBe("Ranzig");
expect((resultItem.content.value as PersonNameJSON).middleName).toBe("Gerhard");
expect((resultItem.content.value as PersonNameJSON).honorificPrefix).toBe("Dr.");
expect((resultItem.content.value as PersonNameJSON).honorificSuffix).toBe("von Warnermünde");
expect((resultItem.content.value as PersonNameJSON).givenName).toBe("aGivenName");
expect((resultItem.content.value as PersonNameJSON).surname).toBe("aSurname");
expect((resultItem.content.value as PersonNameJSON).middleName).toBe("aMiddleName");
expect((resultItem.content.value as PersonNameJSON).honorificPrefix).toBe("anHonorificPrefix");
expect((resultItem.content.value as PersonNameJSON).honorificSuffix).toBe("anHonorificSuffix");
});

test("check the MessageDVO for the recipient after acceptance", async () => {
Expand Down Expand Up @@ -487,11 +495,11 @@ describe("ComplexReadAttributeRequestItemDVO with IQL", () => {

const attributeValue = responseItem.attribute.value as PersonNameJSON;
expect(attributeValue["@type"]).toBe("PersonName");
expect(attributeValue.givenName).toBe("Heinz");
expect(attributeValue.surname).toBe("Ranzig");
expect(attributeValue.middleName).toBe("Gerhard");
expect(attributeValue.honorificPrefix).toBe("Dr.");
expect(attributeValue.honorificSuffix).toBe("von Warnermünde");
expect(attributeValue.givenName).toBe("aGivenName");
expect(attributeValue.surname).toBe("aSurname");
expect(attributeValue.middleName).toBe("aMiddleName");
expect(attributeValue.honorificPrefix).toBe("anHonorificPrefix");
expect(attributeValue.honorificSuffix).toBe("anHonorificSuffix");
expect(requestItemDVO.response).toStrictEqual(responseItem);

const attributeResult = await consumptionServices2.attributes.getAttributes({
Expand All @@ -503,11 +511,11 @@ describe("ComplexReadAttributeRequestItemDVO with IQL", () => {

const returnedValue = attributeResult.value[0].content.value as PersonNameJSON;
expect(returnedValue["@type"]).toBe("PersonName");
expect(returnedValue.givenName).toBe("Heinz");
expect(returnedValue.surname).toBe("Ranzig");
expect(returnedValue.middleName).toBe("Gerhard");
expect(returnedValue.honorificPrefix).toBe("Dr.");
expect(returnedValue.honorificSuffix).toBe("von Warnermünde");
expect(returnedValue.givenName).toBe("aGivenName");
expect(returnedValue.surname).toBe("aSurname");
expect(returnedValue.middleName).toBe("aMiddleName");
expect(returnedValue.honorificPrefix).toBe("anHonorificPrefix");
expect(returnedValue.honorificSuffix).toBe("anHonorificSuffix");

expect(responseItem.attributeId).toStrictEqual(attributeResult.value[0].id);
expect(returnedValue).toStrictEqual(attributeValue);
Expand Down Expand Up @@ -565,11 +573,11 @@ describe("ComplexReadAttributeRequestItemDVO with IQL", () => {

const returnedValue = attributeResult.value[numberOfAttributes - 1].content.value as PersonNameJSON;
expect(returnedValue["@type"]).toBe("PersonName");
expect(returnedValue.givenName).toBe("Heinz");
expect(returnedValue.surname).toBe("Ranzig");
expect(returnedValue.middleName).toBe("Gerhard");
expect(returnedValue.honorificPrefix).toBe("Dr.");
expect(returnedValue.honorificSuffix).toBe("von Warnermünde");
expect(returnedValue.givenName).toBe("aGivenName");
expect(returnedValue.surname).toBe("aSurname");
expect(returnedValue.middleName).toBe("aMiddleName");
expect(returnedValue.honorificPrefix).toBe("anHonorificPrefix");
expect(returnedValue.honorificSuffix).toBe("anHonorificSuffix");

expect(responseItem.attributeId).toStrictEqual(attributeResult.value[numberOfAttributes - 1].id);
expect(returnedValue).toStrictEqual(responseItem.attribute.content.value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ beforeAll(async () => {
afterAll(() => serviceProvider.stop());

beforeEach(async function () {
await cleanupAttributes(sRuntimeServices, rRuntimeServices);
await cleanupAttributes([sRuntimeServices, rRuntimeServices]);
rEventBus.reset();
sEventBus.reset();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ beforeAll(async () => {
}, 30000);

beforeEach(async () => {
await cleanupAttributes(sRuntimeServices, rRuntimeServices);
await cleanupAttributes([sRuntimeServices, rRuntimeServices]);
const sOwnSharedIdentityAttribute = await executeFullCreateAndShareRepositoryAttributeFlow(sRuntimeServices, rRuntimeServices, {
content: {
value: {
Expand Down
Loading

0 comments on commit cfa647c

Please sign in to comment.