diff --git a/packages/consumption/src/consumption/ConsumptionController.ts b/packages/consumption/src/consumption/ConsumptionController.ts index 8a4d54aa1..d996f8b7b 100644 --- a/packages/consumption/src/consumption/ConsumptionController.ts +++ b/packages/consumption/src/consumption/ConsumptionController.ts @@ -4,7 +4,6 @@ import { CreateAttributeRequestItem, DeleteAttributeRequestItem, FormFieldRequestItem, - FreeTextRequestItem, OwnSharedAttributeDeletedByOwnerNotificationItem, PeerSharedAttributeDeletedByPeerNotificationItem, PeerSharedAttributeSucceededNotificationItem, @@ -24,7 +23,6 @@ import { DeleteAttributeRequestItemProcessor, DraftsController, FormFieldRequestItemProcessor, - FreeTextRequestItemProcessor, GenericRequestItemProcessor, IdentityMetadataController, IncomingRequestsController, @@ -162,7 +160,6 @@ export class ConsumptionController { [ConsentRequestItem, GenericRequestItemProcessor], [AuthenticationRequestItem, GenericRequestItemProcessor], [RegisterAttributeListenerRequestItem, RegisterAttributeListenerRequestItemProcessor], - [FreeTextRequestItem, FreeTextRequestItemProcessor], [FormFieldRequestItem, FormFieldRequestItemProcessor], [TransferFileOwnershipRequestItem, TransferFileOwnershipRequestItemProcessor] ]); diff --git a/packages/consumption/src/modules/requests/index.ts b/packages/consumption/src/modules/requests/index.ts index 483f058b1..199ca355e 100644 --- a/packages/consumption/src/modules/requests/index.ts +++ b/packages/consumption/src/modules/requests/index.ts @@ -16,8 +16,6 @@ export * from "./itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItem export * from "./itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor"; export * from "./itemProcessors/formField/AcceptFormFieldRequestItemParameters"; export * from "./itemProcessors/formField/FormFieldRequestItemProcessor"; -export * from "./itemProcessors/freeText/AcceptFreeTextRequestItemParameters"; -export * from "./itemProcessors/freeText/FreeTextRequestItemProcessor"; export * from "./itemProcessors/GenericRequestItemProcessor"; export * from "./itemProcessors/IRequestItemProcessor"; export * from "./itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters"; diff --git a/packages/consumption/src/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.ts b/packages/consumption/src/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.ts deleted file mode 100644 index c204d716b..000000000 --- a/packages/consumption/src/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Serializable, serialize, type, validate } from "@js-soft/ts-serval"; -import { AcceptRequestItemParametersJSON } from "../../incoming/decide/AcceptRequestItemParameters"; - -export interface AcceptFreeTextRequestItemParametersJSON extends AcceptRequestItemParametersJSON { - freeText: string; -} - -@type("AcceptFreeTextRequestItemParameters") -export class AcceptFreeTextRequestItemParameters extends Serializable { - @serialize() - @validate() - public freeText: string; - - public static from(value: AcceptFreeTextRequestItemParametersJSON): AcceptFreeTextRequestItemParameters { - return this.fromAny(value); - } -} diff --git a/packages/consumption/src/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.ts b/packages/consumption/src/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.ts deleted file mode 100644 index 0807776f3..000000000 --- a/packages/consumption/src/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ParsingError } from "@js-soft/ts-serval"; -import { FreeTextAcceptResponseItem, FreeTextRequestItem, ResponseItemResult } from "@nmshd/content"; -import { ValidationResult } from "../../../common/ValidationResult"; -import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor"; - -import { ConsumptionCoreErrors } from "../../../../consumption/ConsumptionCoreErrors"; -import { AcceptFreeTextRequestItemParameters, AcceptFreeTextRequestItemParametersJSON } from "./AcceptFreeTextRequestItemParameters"; - -export class FreeTextRequestItemProcessor extends GenericRequestItemProcessor { - public override canAccept(_requestItem: FreeTextRequestItem, params: AcceptFreeTextRequestItemParametersJSON): ValidationResult { - try { - AcceptFreeTextRequestItemParameters.from(params); - } catch (error) { - if (!(error instanceof ParsingError)) throw error; - - return ValidationResult.error(ConsumptionCoreErrors.requests.invalidAcceptParameters("The RequestItem was answered with incorrect parameters.")); - } - - return ValidationResult.success(); - } - - public override accept(_requestItem: FreeTextRequestItem, params: AcceptFreeTextRequestItemParametersJSON): FreeTextAcceptResponseItem { - const parsedParams = AcceptFreeTextRequestItemParameters.from(params); - return FreeTextAcceptResponseItem.from({ - result: ResponseItemResult.Accepted, - freeText: parsedParams.freeText - }); - } -} diff --git a/packages/consumption/test/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.test.ts b/packages/consumption/test/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.test.ts deleted file mode 100644 index e69db3a40..000000000 --- a/packages/consumption/test/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { FreeTextRequestItem } from "@nmshd/content"; -import { Transport } from "@nmshd/transport"; -import { ConsumptionController, FreeTextRequestItemProcessor } from "../../../../../src"; -import { TestUtil } from "../../../../core/TestUtil"; - -describe("FreeTextRequestItemProcessor", function () { - let connection: IDatabaseConnection; - let transport: Transport; - - let consumptionController: ConsumptionController; - - let processor: FreeTextRequestItemProcessor; - - beforeAll(async function () { - connection = await TestUtil.createConnection(); - transport = TestUtil.createTransport(); - await transport.init(); - - const account = (await TestUtil.provideAccounts(transport, connection, 1))[0]; - consumptionController = account.consumptionController; - - processor = new FreeTextRequestItemProcessor(consumptionController); - }); - - afterAll(async function () { - await connection.close(); - }); - - afterEach(async function () { - const listeners = await consumptionController.attributeListeners.getAttributeListeners(); - - for (const listener of listeners) { - await consumptionController.attributeListeners["attributeListeners"].delete(listener); - } - }); - - describe("canAccept", function () { - test("returns success when called with valid params", function () { - const requestItem = FreeTextRequestItem.from({ - mustBeAccepted: true, - freeText: "This is a TestRequest" - }); - - const result = processor.canAccept(requestItem, { - accept: true, - freeText: "This is a TestResponse" - }); - - expect(result).successfulValidationResult(); - }); - - test("returns an error when called with invalid params", function () { - const requestItem = FreeTextRequestItem.from({ - mustBeAccepted: true, - freeText: "This is a TestRequest" - }); - - const result = processor.canAccept(requestItem, { - accept: true, - freeText: {} as string - }); - - expect(result).errorValidationResult({ - code: "error.consumption.requests.invalidAcceptParameters" - }); - }); - }); - - describe("accept", function () { - test("creates a FreeTextAcceptResponseItem when called with valid params", function () { - const requestItem = FreeTextRequestItem.from({ - mustBeAccepted: true, - freeText: "This is a TestRequest" - }); - - const result = processor.accept(requestItem, { - accept: true, - freeText: "This is a TestResponse" - }); - - expect(result.freeText).toBe("This is a TestResponse"); - }); - }); -}); diff --git a/packages/content/src/requests/RequestItem.ts b/packages/content/src/requests/RequestItem.ts index 438f03614..9aed2a634 100644 --- a/packages/content/src/requests/RequestItem.ts +++ b/packages/content/src/requests/RequestItem.ts @@ -11,14 +11,11 @@ import { DeleteAttributeRequestItemJSON, FormFieldRequestItem, FormFieldRequestItemJSON, - FreeTextRequestItem, - FreeTextRequestItemJSON, IAuthenticationRequestItem, IConsentRequestItem, ICreateAttributeRequestItem, IDeleteAttributeRequestItem, IFormFieldRequestItem, - IFreeTextRequestItem, IProposeAttributeRequestItem, IReadAttributeRequestItem, IRegisterAttributeListenerRequestItem, @@ -72,7 +69,6 @@ export type RequestItemJSONDerivations = | ReadAttributeRequestItemJSON | ConsentRequestItemJSON | AuthenticationRequestItemJSON - | FreeTextRequestItemJSON | FormFieldRequestItemJSON | RegisterAttributeListenerRequestItemJSON | TransferFileOwnershipRequestItemJSON; @@ -113,7 +109,6 @@ export type IRequestItemDerivations = | IReadAttributeRequestItem | IConsentRequestItem | IAuthenticationRequestItem - | IFreeTextRequestItem | IFormFieldRequestItem | IRegisterAttributeListenerRequestItem | ITransferFileOwnershipRequestItem; @@ -149,7 +144,6 @@ export type RequestItemDerivations = | ReadAttributeRequestItem | ConsentRequestItem | AuthenticationRequestItem - | FreeTextRequestItem | FormFieldRequestItem | RegisterAttributeListenerRequestItem | TransferFileOwnershipRequestItem; @@ -164,7 +158,6 @@ export function isRequestItemDerivation(input: any): input is RequestItemDerivat input["@type"] === "ReadAttributeRequestItem" || input["@type"] === "ConsentRequestItem" || input["@type"] === "AuthenticationRequestItem" || - input["@type"] === "FreeTextRequestItem" || input["@type"] === "FormFieldRequestItem" || input["@type"] === "RegisterAttributeListenerRequestItem" || input["@type"] === "TransferFileOwnershipRequestItem" diff --git a/packages/content/src/requests/items/freeText/FreeTextAcceptResponseItem.ts b/packages/content/src/requests/items/freeText/FreeTextAcceptResponseItem.ts deleted file mode 100644 index 8e9e0d7bc..000000000 --- a/packages/content/src/requests/items/freeText/FreeTextAcceptResponseItem.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { serialize, type, validate } from "@js-soft/ts-serval"; -import { AcceptResponseItem, AcceptResponseItemJSON, IAcceptResponseItem } from "../../response"; - -export interface FreeTextAcceptResponseItemJSON extends AcceptResponseItemJSON { - "@type": "FreeTextAcceptResponseItem"; - freeText: string; -} - -export interface IFreeTextAcceptResponseItem extends IAcceptResponseItem { - freeText: string; -} - -@type("FreeTextAcceptResponseItem") -export class FreeTextAcceptResponseItem extends AcceptResponseItem implements IFreeTextAcceptResponseItem { - @serialize() - @validate() - public freeText: string; - - public static override from(value: IFreeTextAcceptResponseItem | Omit | FreeTextAcceptResponseItemJSON): FreeTextAcceptResponseItem { - return this.fromAny(value); - } - - public override toJSON(verbose?: boolean | undefined, serializeAsString?: boolean | undefined): FreeTextAcceptResponseItemJSON { - return super.toJSON(verbose, serializeAsString) as FreeTextAcceptResponseItemJSON; - } -} diff --git a/packages/content/src/requests/items/freeText/FreeTextRequestItem.ts b/packages/content/src/requests/items/freeText/FreeTextRequestItem.ts deleted file mode 100644 index 4d79e478c..000000000 --- a/packages/content/src/requests/items/freeText/FreeTextRequestItem.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { serialize, type, validate } from "@js-soft/ts-serval"; -import { IRequestItem, RequestItem, RequestItemJSON } from "../../RequestItem"; - -export interface FreeTextRequestItemJSON extends RequestItemJSON { - "@type": "FreeTextRequestItem"; - freeText: string; -} - -export interface IFreeTextRequestItem extends IRequestItem { - freeText: string; -} - -@type("FreeTextRequestItem") -export class FreeTextRequestItem extends RequestItem implements IFreeTextRequestItem { - @serialize() - @validate() - public freeText: string; - - public static from(value: IFreeTextRequestItem | Omit | FreeTextRequestItemJSON): FreeTextRequestItem { - return this.fromAny(value); - } - - public override toJSON(verbose?: boolean | undefined, serializeAsString?: boolean | undefined): FreeTextRequestItemJSON { - return super.toJSON(verbose, serializeAsString) as FreeTextRequestItemJSON; - } -} diff --git a/packages/content/src/requests/items/index.ts b/packages/content/src/requests/items/index.ts index f38778fce..91f1c5022 100644 --- a/packages/content/src/requests/items/index.ts +++ b/packages/content/src/requests/items/index.ts @@ -9,8 +9,6 @@ export * from "./deleteAttribute/DeleteAttributeRequestItem"; export * from "./formField/FormFieldAcceptResponseItem"; export * from "./formField/FormFieldRequestItem"; export * from "./formField/settings"; -export * from "./freeText/FreeTextAcceptResponseItem"; -export * from "./freeText/FreeTextRequestItem"; export * from "./proposeAttribute/ProposeAttributeAcceptResponseItem"; export * from "./proposeAttribute/ProposeAttributeRequestItem"; export * from "./readAttribute/ReadAttributeAcceptResponseItem"; diff --git a/packages/content/src/requests/response/AcceptResponseItem.ts b/packages/content/src/requests/response/AcceptResponseItem.ts index 5f47a5386..c5edb9b75 100644 --- a/packages/content/src/requests/response/AcceptResponseItem.ts +++ b/packages/content/src/requests/response/AcceptResponseItem.ts @@ -8,13 +8,10 @@ import { CreateAttributeAcceptResponseItemJSON, FormFieldAcceptResponseItem, FormFieldAcceptResponseItemJSON, - FreeTextAcceptResponseItem, - FreeTextAcceptResponseItemJSON, IAttributeAlreadySharedAcceptResponseItem, IAttributeSuccessionAcceptResponseItem, ICreateAttributeAcceptResponseItem, IFormFieldAcceptResponseItem, - IFreeTextAcceptResponseItem, IProposeAttributeAcceptResponseItem, IReadAttributeAcceptResponseItem, IRegisterAttributeListenerAcceptResponseItem, @@ -44,7 +41,6 @@ export type AcceptResponseItemJSONDerivations = | ProposeAttributeAcceptResponseItemJSON | ReadAttributeAcceptResponseItemJSON | RegisterAttributeListenerAcceptResponseItemJSON - | FreeTextAcceptResponseItemJSON | FormFieldAcceptResponseItemJSON; export interface IAcceptResponseItem extends IResponseItem { @@ -60,7 +56,6 @@ export type IAcceptResponseItemDerivations = | IProposeAttributeAcceptResponseItem | IReadAttributeAcceptResponseItem | IRegisterAttributeListenerAcceptResponseItem - | IFreeTextAcceptResponseItem | IFormFieldAcceptResponseItem; @type("AcceptResponseItem") @@ -85,5 +80,4 @@ export type AcceptResponseItemDerivations = | ProposeAttributeAcceptResponseItem | ReadAttributeAcceptResponseItem | RegisterAttributeListenerAcceptResponseItem - | FreeTextAcceptResponseItem | FormFieldAcceptResponseItem; diff --git a/packages/runtime/src/dataViews/DataViewExpander.ts b/packages/runtime/src/dataViews/DataViewExpander.ts index 9f32503a9..d1e7ad9dc 100644 --- a/packages/runtime/src/dataViews/DataViewExpander.ts +++ b/packages/runtime/src/dataViews/DataViewExpander.ts @@ -13,8 +13,6 @@ import { ErrorResponseItemJSON, FormFieldAcceptResponseItemJSON, FormFieldRequestItemJSON, - FreeTextAcceptResponseItemJSON, - FreeTextRequestItemJSON, GivenNameJSON, IQLQueryJSON, IdentityAttribute, @@ -111,8 +109,6 @@ import { ErrorResponseItemDVO, FormFieldAcceptResponseItemDVO, FormFieldRequestItemDVO, - FreeTextAcceptResponseItemDVO, - FreeTextRequestItemDVO, IQLQueryDVO, IdentityAttributeQueryDVO, MailDVO, @@ -608,18 +604,6 @@ export class DataViewExpander { response: responseItemDVO } as ConsentRequestItemDVO; - case "FreeTextRequestItem": - const freeTextRequestItem = requestItem as FreeTextRequestItemJSON; - - return { - ...freeTextRequestItem, - type: "FreeTextRequestItemDVO", - id: "", - name: this.generateRequestItemName(requestItem["@type"], isDecidable), - isDecidable, - response: responseItemDVO - } as FreeTextRequestItemDVO; - case "FormFieldRequestItem": const formFieldRequestItem = requestItem as FormFieldRequestItemJSON; @@ -787,16 +771,6 @@ export class DataViewExpander { attribute: localAttributeDVOForShare } as ShareAttributeAcceptResponseItemDVO; - case "FreeTextAcceptResponseItem": - const freeTextResponseItem = responseItem as FreeTextAcceptResponseItemJSON; - - return { - ...freeTextResponseItem, - type: "FreeTextAcceptResponseItemDVO", - id: "", - name: name - } as FreeTextAcceptResponseItemDVO; - case "FormFieldAcceptResponseItem": const formFieldResponseItem = responseItem as FormFieldAcceptResponseItemJSON; diff --git a/packages/runtime/src/dataViews/content/RequestItemDVOs.ts b/packages/runtime/src/dataViews/content/RequestItemDVOs.ts index 50aa16f82..fb098aaa7 100644 --- a/packages/runtime/src/dataViews/content/RequestItemDVOs.ts +++ b/packages/runtime/src/dataViews/content/RequestItemDVOs.ts @@ -69,11 +69,6 @@ export interface RegisterAttributeListenerRequestItemDVO extends RequestItemDVO query: IdentityAttributeQueryDVO | ThirdPartyRelationshipAttributeQueryDVO; } -export interface FreeTextRequestItemDVO extends RequestItemDVO { - type: "FreeTextRequestItemDVO"; - freeText: string; -} - export interface FormFieldRequestItemDVO extends RequestItemDVO { type: "FormFieldRequestItemDVO"; title: string; diff --git a/packages/runtime/src/dataViews/content/ResponseItemDVOs.ts b/packages/runtime/src/dataViews/content/ResponseItemDVOs.ts index 4594d8c5f..2987b7f3c 100644 --- a/packages/runtime/src/dataViews/content/ResponseItemDVOs.ts +++ b/packages/runtime/src/dataViews/content/ResponseItemDVOs.ts @@ -33,7 +33,6 @@ export interface AcceptResponseItemDVO extends ResponseItemDVO { | "CreateAttributeAcceptResponseItemDVO" | "DeleteAttributeAcceptResponseItemDVO" | "ShareAttributeAcceptResponseItemDVO" - | "FreeTextAcceptResponseItemDVO" | "FormFieldAcceptResponseItemDVO" | "RegisterAttributeListenerAcceptResponseItemDVO" | "TransferFileOwnershipAcceptResponseItemDVO" @@ -72,11 +71,6 @@ export interface ShareAttributeAcceptResponseItemDVO extends AcceptResponseItemD attribute: LocalAttributeDVO; } -export interface FreeTextAcceptResponseItemDVO extends AcceptResponseItemDVO { - type: "FreeTextAcceptResponseItemDVO"; - freeText: string; -} - export interface FormFieldAcceptResponseItemDVO extends AcceptResponseItemDVO { type: "FormFieldAcceptResponseItemDVO"; response: string | number | boolean | string[]; diff --git a/packages/runtime/src/modules/DeciderModule.ts b/packages/runtime/src/modules/DeciderModule.ts index 24c4f22c6..a098a4401 100644 --- a/packages/runtime/src/modules/DeciderModule.ts +++ b/packages/runtime/src/modules/DeciderModule.ts @@ -16,7 +16,6 @@ import { RuntimeErrors } from "../useCases/common/RuntimeErrors"; import { isAcceptResponseConfig, isDeleteAttributeAcceptResponseConfig, - isFreeTextAcceptResponseConfig, isGeneralRequestConfig, isProposeAttributeWithNewAttributeAcceptResponseConfig, isReadAttributeWithNewAttributeAcceptResponseConfig, @@ -59,8 +58,6 @@ export class DeciderModule extends RuntimeModule { switch (requestConfig["content.item.@type"]) { case "DeleteAttributeRequestItem": return isDeleteAttributeAcceptResponseConfig(responseConfig); - case "FreeTextRequestItem": - return isFreeTextAcceptResponseConfig(responseConfig); case "ProposeAttributeRequestItem": return isProposeAttributeWithNewAttributeAcceptResponseConfig(responseConfig); case "ReadAttributeRequestItem": diff --git a/packages/runtime/src/modules/decide/RequestConfig.ts b/packages/runtime/src/modules/decide/RequestConfig.ts index 0c931454c..072b2775f 100644 --- a/packages/runtime/src/modules/decide/RequestConfig.ts +++ b/packages/runtime/src/modules/decide/RequestConfig.ts @@ -50,11 +50,6 @@ export interface DeleteAttributeRequestItemConfig extends RequestItemConfig { "content.item.@type": "DeleteAttributeRequestItem"; } -export interface FreeTextRequestItemConfig extends RequestItemConfig { - "content.item.@type": "FreeTextRequestItem"; - "content.item.freeText"?: string | string[]; -} - export interface ProposeAttributeRequestItemConfig extends RequestItemConfig { "content.item.@type": "ProposeAttributeRequestItem"; "content.item.attribute.@type"?: "IdentityAttribute" | "RelationshipAttribute"; @@ -124,7 +119,6 @@ export type RequestItemDerivationConfig = | ConsentRequestItemConfig | CreateAttributeRequestItemConfig | DeleteAttributeRequestItemConfig - | FreeTextRequestItemConfig | ProposeAttributeRequestItemConfig | ReadAttributeRequestItemConfig | RegisterAttributeListenerRequestItemConfig diff --git a/packages/runtime/src/modules/decide/ResponseConfig.ts b/packages/runtime/src/modules/decide/ResponseConfig.ts index 3ad0769ae..fc5543544 100644 --- a/packages/runtime/src/modules/decide/ResponseConfig.ts +++ b/packages/runtime/src/modules/decide/ResponseConfig.ts @@ -30,14 +30,6 @@ export function isDeleteAttributeAcceptResponseConfig(object: any): object is De return "deletionDate" in object; } -export interface FreeTextAcceptResponseConfig extends AcceptResponseConfig { - freeText: string; -} - -export function isFreeTextAcceptResponseConfig(object: any): object is FreeTextAcceptResponseConfig { - return "freeText" in object; -} - export interface ProposeAttributeWithNewAttributeAcceptResponseConfig extends AcceptResponseConfig { attribute: IdentityAttribute | RelationshipAttribute; } @@ -57,7 +49,6 @@ export function isReadAttributeWithNewAttributeAcceptResponseConfig(object: any) export type AcceptResponseConfigDerivation = | AcceptResponseConfig | DeleteAttributeAcceptResponseConfig - | FreeTextAcceptResponseConfig | ProposeAttributeWithNewAttributeAcceptResponseConfig | ReadAttributeWithNewAttributeAcceptResponseConfig; diff --git a/packages/runtime/src/useCases/common/Schemas.ts b/packages/runtime/src/useCases/common/Schemas.ts index c9ad6a4dd..077287857 100644 --- a/packages/runtime/src/useCases/common/Schemas.ts +++ b/packages/runtime/src/useCases/common/Schemas.ts @@ -317,9 +317,6 @@ export const CanCreateOutgoingRequestRequest: any = { { "$ref": "#/definitions/AuthenticationRequestItemJSON" }, - { - "$ref": "#/definitions/FreeTextRequestItemJSON" - }, { "$ref": "#/definitions/FormFieldRequestItemJSON" }, @@ -2858,46 +2855,6 @@ export const CanCreateOutgoingRequestRequest: any = { ], "additionalProperties": false }, - "FreeTextRequestItemJSON": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "const": "FreeTextRequestItem" - }, - "@context": { - "type": "string" - }, - "@version": { - "type": "string" - }, - "description": { - "type": "string", - "description": "The human-readable description of this item." - }, - "metadata": { - "type": "object", - "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the item as they receive the response." - }, - "mustBeAccepted": { - "type": "boolean", - "description": "If set to `true`, the recipient has to accept this item if they want to accept the Request. If set to `false`, the recipient can decide whether they want to accept it or not." - }, - "requireManualDecision": { - "type": "boolean", - "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules." - }, - "freeText": { - "type": "string" - } - }, - "required": [ - "@type", - "freeText", - "mustBeAccepted" - ], - "additionalProperties": false - }, "FormFieldRequestItemJSON": { "type": "object", "properties": { @@ -3532,9 +3489,6 @@ export const CompleteOutgoingRequestRequest: any = { { "$ref": "#/definitions/RegisterAttributeListenerAcceptResponseItemJSON" }, - { - "$ref": "#/definitions/FreeTextAcceptResponseItemJSON" - }, { "$ref": "#/definitions/FormFieldAcceptResponseItemJSON" } @@ -5700,34 +5654,6 @@ export const CompleteOutgoingRequestRequest: any = { ], "additionalProperties": false }, - "FreeTextAcceptResponseItemJSON": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "const": "FreeTextAcceptResponseItem" - }, - "@context": { - "type": "string" - }, - "@version": { - "type": "string" - }, - "result": { - "type": "string", - "const": "Accepted" - }, - "freeText": { - "type": "string" - } - }, - "required": [ - "@type", - "freeText", - "result" - ], - "additionalProperties": false - }, "FormFieldAcceptResponseItemJSON": { "type": "object", "properties": { @@ -6003,9 +5929,6 @@ export const CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseReq { "$ref": "#/definitions/RegisterAttributeListenerAcceptResponseItemJSON" }, - { - "$ref": "#/definitions/FreeTextAcceptResponseItemJSON" - }, { "$ref": "#/definitions/FormFieldAcceptResponseItemJSON" } @@ -8171,34 +8094,6 @@ export const CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseReq ], "additionalProperties": false }, - "FreeTextAcceptResponseItemJSON": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "const": "FreeTextAcceptResponseItem" - }, - "@context": { - "type": "string" - }, - "@version": { - "type": "string" - }, - "result": { - "type": "string", - "const": "Accepted" - }, - "freeText": { - "type": "string" - } - }, - "required": [ - "@type", - "freeText", - "result" - ], - "additionalProperties": false - }, "FormFieldAcceptResponseItemJSON": { "type": "object", "properties": { @@ -8440,9 +8335,6 @@ export const CreateOutgoingRequestRequest: any = { { "$ref": "#/definitions/AuthenticationRequestItemJSON" }, - { - "$ref": "#/definitions/FreeTextRequestItemJSON" - }, { "$ref": "#/definitions/FormFieldRequestItemJSON" }, @@ -10981,46 +10873,6 @@ export const CreateOutgoingRequestRequest: any = { ], "additionalProperties": false }, - "FreeTextRequestItemJSON": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "const": "FreeTextRequestItem" - }, - "@context": { - "type": "string" - }, - "@version": { - "type": "string" - }, - "description": { - "type": "string", - "description": "The human-readable description of this item." - }, - "metadata": { - "type": "object", - "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the item as they receive the response." - }, - "mustBeAccepted": { - "type": "boolean", - "description": "If set to `true`, the recipient has to accept this item if they want to accept the Request. If set to `false`, the recipient can decide whether they want to accept it or not." - }, - "requireManualDecision": { - "type": "boolean", - "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules." - }, - "freeText": { - "type": "string" - } - }, - "required": [ - "@type", - "freeText", - "mustBeAccepted" - ], - "additionalProperties": false - }, "FormFieldRequestItemJSON": { "type": "object", "properties": { @@ -12011,9 +11863,6 @@ export const ReceivedIncomingRequestRequest: any = { { "$ref": "#/definitions/AuthenticationRequestItemJSON" }, - { - "$ref": "#/definitions/FreeTextRequestItemJSON" - }, { "$ref": "#/definitions/FormFieldRequestItemJSON" }, @@ -14552,46 +14401,6 @@ export const ReceivedIncomingRequestRequest: any = { ], "additionalProperties": false }, - "FreeTextRequestItemJSON": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "const": "FreeTextRequestItem" - }, - "@context": { - "type": "string" - }, - "@version": { - "type": "string" - }, - "description": { - "type": "string", - "description": "The human-readable description of this item." - }, - "metadata": { - "type": "object", - "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the item as they receive the response." - }, - "mustBeAccepted": { - "type": "boolean", - "description": "If set to `true`, the recipient has to accept this item if they want to accept the Request. If set to `false`, the recipient can decide whether they want to accept it or not." - }, - "requireManualDecision": { - "type": "boolean", - "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules." - }, - "freeText": { - "type": "string" - } - }, - "required": [ - "@type", - "freeText", - "mustBeAccepted" - ], - "additionalProperties": false - }, "FormFieldRequestItemJSON": { "type": "object", "properties": { diff --git a/packages/runtime/test/dataViews/requestItems/FreeTextRequestItemDVO.test.ts b/packages/runtime/test/dataViews/requestItems/FreeTextRequestItemDVO.test.ts deleted file mode 100644 index 2d99d9aaa..000000000 --- a/packages/runtime/test/dataViews/requestItems/FreeTextRequestItemDVO.test.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { AcceptFreeTextRequestItemParametersJSON, DecideRequestItemParametersJSON } from "@nmshd/consumption"; -import { FreeTextRequestItem } from "@nmshd/content"; -import { - ConsumptionServices, - CreateOutgoingRequestRequest, - DataViewExpander, - FreeTextAcceptResponseItemDVO, - FreeTextRequestItemDVO, - IncomingRequestStatusChangedEvent, - LocalRequestStatus, - OutgoingRequestStatusChangedEvent, - RequestMessageDVO, - TransportServices -} from "../../../src"; -import { - establishRelationship, - exchangeAndAcceptRequestByMessage, - exchangeMessageWithRequest, - MockEventBus, - RuntimeServiceProvider, - sendMessageWithRequest, - syncUntilHasMessageWithRequest, - syncUntilHasMessageWithResponse, - TestRuntimeServices -} from "../../lib"; - -const serviceProvider = new RuntimeServiceProvider(); -let runtimeServices1: TestRuntimeServices; -let runtimeServices2: TestRuntimeServices; -let transportServices1: TransportServices; -let transportServices2: TransportServices; -let expander1: DataViewExpander; -let expander2: DataViewExpander; -let consumptionServices2: ConsumptionServices; -let eventBus1: MockEventBus; -let eventBus2: MockEventBus; -let address2: string; - -let requestContent: CreateOutgoingRequestRequest; -let responseItems: DecideRequestItemParametersJSON[]; - -afterAll(() => serviceProvider.stop()); - -beforeEach(function () { - eventBus1.reset(); - eventBus2.reset(); -}); - -describe("FreeTextRequestItemDVO", () => { - beforeAll(async () => { - const runtimeServices = await serviceProvider.launch(2, { enableRequestModule: true }); - runtimeServices1 = runtimeServices[0]; - runtimeServices2 = runtimeServices[1]; - transportServices1 = runtimeServices1.transport; - transportServices2 = runtimeServices2.transport; - expander1 = runtimeServices1.expander; - expander2 = runtimeServices2.expander; - consumptionServices2 = runtimeServices2.consumption; - eventBus1 = runtimeServices1.eventBus; - eventBus2 = runtimeServices2.eventBus; - - await establishRelationship(transportServices1, transportServices2); - address2 = (await transportServices2.account.getIdentityInfo()).value.address; - - requestContent = { - content: { - items: [ - FreeTextRequestItem.from({ - mustBeAccepted: true, - freeText: "Please accept this free text." - }).toJSON() - ] - }, - peer: address2 - }; - - responseItems = [{ accept: true, freeText: "I accept the free text." } as AcceptFreeTextRequestItemParametersJSON]; - }, 30000); - - test("check the MessageDVO for the sender", async () => { - const senderMessage = await sendMessageWithRequest(runtimeServices1, runtimeServices2, requestContent); - await syncUntilHasMessageWithRequest(transportServices2, senderMessage.content.id!); - const dto = senderMessage; - const dvo = (await expander1.expandMessageDTO(senderMessage)) as RequestMessageDVO; - expect(dvo).toBeDefined(); - expect(dvo.id).toBe(dto.id); - expect(dvo.name).toBe("i18n://dvo.message.name"); - expect(dvo.type).toBe("RequestMessageDVO"); - expect(dvo.date).toBe(dto.createdAt); - expect(dvo.request).toBeDefined(); - expect(dvo.request.isOwn).toBe(true); - expect(dvo.request.status).toBe("Open"); - expect(dvo.request.statusText).toBe("i18n://dvo.localRequest.status.Open"); - expect(dvo.request.type).toBe("LocalRequestDVO"); - expect(dvo.request.content.type).toBe("RequestDVO"); - expect(dvo.request.content.items).toHaveLength(1); - expect(dvo.request.isDecidable).toBe(false); - const requestItemDVO = dvo.request.content.items[0] as FreeTextRequestItemDVO; - expect(requestItemDVO.type).toBe("FreeTextRequestItemDVO"); - expect(requestItemDVO.isDecidable).toBe(false); - expect(requestItemDVO.freeText).toBe("Please accept this free text."); - expect(requestItemDVO.mustBeAccepted).toBe(true); - }); - - test("check the MessageDVO for the recipient", async () => { - const recipientMessage = await exchangeMessageWithRequest(runtimeServices1, runtimeServices2, requestContent); - await eventBus2.waitForEvent(IncomingRequestStatusChangedEvent, (e) => e.data.newStatus === LocalRequestStatus.DecisionRequired); - const dto = recipientMessage; - const dvo = (await expander2.expandMessageDTO(recipientMessage)) as RequestMessageDVO; - expect(dvo).toBeDefined(); - expect(dvo.id).toBe(dto.id); - expect(dvo.name).toBe("i18n://dvo.message.name"); - expect(dvo.type).toBe("RequestMessageDVO"); - expect(dvo.date).toBe(dto.createdAt); - expect(dvo.request).toBeDefined(); - expect(dvo.request.isOwn).toBe(false); - expect(dvo.request.status).toBe("DecisionRequired"); - expect(dvo.request.statusText).toBe("i18n://dvo.localRequest.status.DecisionRequired"); - expect(dvo.request.type).toBe("LocalRequestDVO"); - expect(dvo.request.content.type).toBe("RequestDVO"); - expect(dvo.request.content.items).toHaveLength(1); - expect(dvo.request.isDecidable).toBe(true); - const requestItemDVO = dvo.request.content.items[0] as FreeTextRequestItemDVO; - expect(requestItemDVO.type).toBe("FreeTextRequestItemDVO"); - expect(requestItemDVO.isDecidable).toBe(true); - expect(requestItemDVO.freeText).toBe("Please accept this free text."); - expect(requestItemDVO.mustBeAccepted).toBe(true); - }); - - test("check the MessageDVO for the recipient after acceptance", async () => { - const recipientMessage = await exchangeMessageWithRequest(runtimeServices1, runtimeServices2, requestContent); - await eventBus2.waitForEvent(IncomingRequestStatusChangedEvent, (e) => e.data.newStatus === LocalRequestStatus.DecisionRequired); - const acceptResult = await consumptionServices2.incomingRequests.accept({ - requestId: recipientMessage.content.id!, - items: responseItems - }); - expect(acceptResult).toBeSuccessful(); - - const dto = recipientMessage; - const dvo = (await expander2.expandMessageDTO(recipientMessage)) as RequestMessageDVO; - expect(dvo).toBeDefined(); - expect(dvo.id).toBe(dto.id); - expect(dvo.name).toBe("i18n://dvo.message.name"); - expect(dvo.type).toBe("RequestMessageDVO"); - expect(dvo.date).toBe(dto.createdAt); - expect(dvo.request).toBeDefined(); - expect(dvo.request.isOwn).toBe(false); - expect(dvo.request.status).toBe("Decided"); - expect(dvo.request.statusText).toBe("i18n://dvo.localRequest.status.Decided"); - expect(dvo.request.type).toBe("LocalRequestDVO"); - expect(dvo.request.content.type).toBe("RequestDVO"); - expect(dvo.request.content.items).toHaveLength(1); - expect(dvo.request.isDecidable).toBe(false); - const requestItemDVO = dvo.request.content.items[0] as FreeTextRequestItemDVO; - expect(requestItemDVO.type).toBe("FreeTextRequestItemDVO"); - expect(requestItemDVO.isDecidable).toBe(false); - expect(requestItemDVO.freeText).toBe("Please accept this free text."); - expect(requestItemDVO.mustBeAccepted).toBe(true); - - const response = dvo.request.response; - expect(response).toBeDefined(); - expect(response!.type).toBe("LocalResponseDVO"); - expect(response!.name).toBe("i18n://dvo.localResponse.name"); - expect(response!.date).toBeDefined(); - expect(response!.content.result).toBe("Accepted"); - expect(response!.content.items).toHaveLength(1); - const responseItem = response!.content.items[0] as FreeTextAcceptResponseItemDVO; - expect(responseItem.result).toBe("Accepted"); - expect(responseItem.type).toBe("FreeTextAcceptResponseItemDVO"); - expect(responseItem.freeText).toBe("I accept the free text."); - expect(requestItemDVO.response).toStrictEqual(responseItem); - - await syncUntilHasMessageWithResponse(transportServices1, recipientMessage.content.id!); - await eventBus1.waitForEvent(OutgoingRequestStatusChangedEvent, (e) => e.data.newStatus === LocalRequestStatus.Completed); - }); - - test("check the MessageDVO for the sender after acceptance", async () => { - const senderMessage = await exchangeAndAcceptRequestByMessage(runtimeServices1, runtimeServices2, requestContent, responseItems); - const dto = senderMessage; - const dvo = (await expander1.expandMessageDTO(senderMessage)) as RequestMessageDVO; - expect(dvo).toBeDefined(); - expect(dvo.id).toBe(dto.id); - expect(dvo.name).toBe("i18n://dvo.message.name"); - expect(dvo.type).toBe("RequestMessageDVO"); - expect(dvo.date).toBe(dto.createdAt); - expect(dvo.request).toBeDefined(); - expect(dvo.request.isOwn).toBe(true); - expect(dvo.request.status).toBe("Completed"); - expect(dvo.request.statusText).toBe("i18n://dvo.localRequest.status.Completed"); - expect(dvo.request.type).toBe("LocalRequestDVO"); - expect(dvo.request.content.type).toBe("RequestDVO"); - expect(dvo.request.content.items).toHaveLength(1); - expect(dvo.request.isDecidable).toBe(false); - const requestItemDVO = dvo.request.content.items[0] as FreeTextRequestItemDVO; - expect(requestItemDVO.type).toBe("FreeTextRequestItemDVO"); - expect(requestItemDVO.isDecidable).toBe(false); - expect(requestItemDVO.freeText).toBe("Please accept this free text."); - expect(requestItemDVO.mustBeAccepted).toBe(true); - const response = dvo.request.response; - expect(response).toBeDefined(); - expect(response!.type).toBe("LocalResponseDVO"); - expect(response!.name).toBe("i18n://dvo.localResponse.name"); - expect(response!.date).toBeDefined(); - expect(response!.content.result).toBe("Accepted"); - expect(response!.content.items).toHaveLength(1); - const responseItem = response!.content.items[0] as FreeTextAcceptResponseItemDVO; - expect(responseItem.result).toBe("Accepted"); - expect(responseItem.type).toBe("FreeTextAcceptResponseItemDVO"); - expect(responseItem.freeText).toBe("I accept the free text."); - expect(requestItemDVO.response).toStrictEqual(responseItem); - }); -}); diff --git a/packages/runtime/test/lib/testUtils.ts b/packages/runtime/test/lib/testUtils.ts index 673bcfaa9..3f8ddeed6 100644 --- a/packages/runtime/test/lib/testUtils.ts +++ b/packages/runtime/test/lib/testUtils.ts @@ -636,7 +636,7 @@ export async function executeFullShareRepositoryAttributeFlow(sender: TestRuntim export async function acceptIncomingShareAttributeRequest(sender: TestRuntimeServices, recipient: TestRuntimeServices, requestId: string): Promise { await syncUntilHasMessageWithRequest(recipient.transport, requestId); await recipient.eventBus.waitForEvent(IncomingRequestStatusChangedEvent, (e) => { - return e.data.request.id === requestId && e.data.newStatus === LocalRequestStatus.ManualDecisionRequired; + return e.data.request.id === requestId && (e.data.newStatus === LocalRequestStatus.ManualDecisionRequired || e.data.newStatus === LocalRequestStatus.Decided); }); await recipient.consumption.incomingRequests.accept({ requestId: requestId, items: [{ accept: true }] }); diff --git a/packages/runtime/test/modules/DeciderModule.test.ts b/packages/runtime/test/modules/DeciderModule.test.ts index d9afa0641..70f1749d1 100644 --- a/packages/runtime/test/modules/DeciderModule.test.ts +++ b/packages/runtime/test/modules/DeciderModule.test.ts @@ -2,7 +2,6 @@ import { LocalAttributeDeletionStatus } from "@nmshd/consumption"; import { CreateAttributeAcceptResponseItemJSON, DeleteAttributeAcceptResponseItemJSON, - FreeTextAcceptResponseItemJSON, GivenName, GivenNameJSON, IdentityAttribute, @@ -36,6 +35,7 @@ import { RuntimeServiceProvider, TestRequestItem, TestRuntimeServices, + cleanupAttributes, establishRelationship, exchangeMessage, executeFullCreateAndShareRepositoryAttributeFlow, @@ -55,6 +55,8 @@ describe("DeciderModule", () => { }, 30000); afterEach(async () => { + await cleanupAttributes([sender]); + const testRuntimes = runtimeServiceProvider["runtimes"]; await testRuntimes[testRuntimes.length - 1].stop(); }); @@ -181,7 +183,7 @@ describe("DeciderModule", () => { "@type": "Request", items: [ { "@type": "AuthenticationRequestItem", mustBeAccepted: false, title: "Title of RequestItem" }, - { "@type": "FreeTextRequestItem", mustBeAccepted: false, freeText: "A free text" } + { "@type": "ConsentRequestItem", mustBeAccepted: false, consent: "A consent text" } ] }, requestSourceId: message.id @@ -593,7 +595,7 @@ describe("DeciderModule", () => { const receivedRequestResult = await recipient.consumption.incomingRequests.received({ receivedRequest: { "@type": "Request", - items: [{ "@type": "FreeTextRequestItem", mustBeAccepted: false, freeText: "A free text" }] + items: [{ "@type": "DeleteAttributeRequestItem", mustBeAccepted: false, attributeId: "anAttributeId" }] }, requestSourceId: message.id }); @@ -1462,56 +1464,6 @@ describe("DeciderModule", () => { expect(updatedSharedAttribute.deletionInfo!.deletionDate).toBe(deletionDate); }); - test("accepts a FreeTextRequestItem given a FreeTextRequestItemConfig with all fields set", async () => { - const deciderConfig: DeciderModuleConfigurationOverwrite = { - automationConfig: [ - { - requestConfig: { - "content.item.@type": "FreeTextRequestItem", - "content.item.freeText": "A Request free text" - }, - responseConfig: { - accept: true, - freeText: "A Response free text" - } - } - ] - }; - const recipient = (await runtimeServiceProvider.launch(1, { enableDeciderModule: true, configureDeciderModule: deciderConfig }))[0]; - await establishRelationship(sender.transport, recipient.transport); - - const message = await exchangeMessage(sender.transport, recipient.transport); - const receivedRequestResult = await recipient.consumption.incomingRequests.received({ - receivedRequest: { - "@type": "Request", - items: [ - { - "@type": "FreeTextRequestItem", - mustBeAccepted: true, - freeText: "A Request free text" - } - ] - }, - requestSourceId: message.id - }); - await recipient.consumption.incomingRequests.checkPrerequisites({ requestId: receivedRequestResult.value.id }); - - await expect(recipient.eventBus).toHavePublished( - MessageProcessedEvent, - (e) => e.data.result === MessageProcessedResult.RequestAutomaticallyDecided && e.data.message.id === message.id - ); - - const requestAfterAction = (await recipient.consumption.incomingRequests.getRequest({ id: receivedRequestResult.value.id })).value; - expect(requestAfterAction.status).toStrictEqual(LocalRequestStatus.Decided); - expect(requestAfterAction.response).toBeDefined(); - - const responseContent = requestAfterAction.response!.content; - expect(responseContent.result).toBe(ResponseResult.Accepted); - expect(responseContent.items).toHaveLength(1); - expect(responseContent.items[0]["@type"]).toBe("FreeTextAcceptResponseItem"); - expect((responseContent.items[0] as FreeTextAcceptResponseItemJSON).freeText).toBe("A Response free text"); - }); - test("accepts a ProposeAttributeRequestItem given a ProposeAttributeRequestItemConfig with all fields set for an IdentityAttribute", async () => { const deciderConfig: DeciderModuleConfigurationOverwrite = { automationConfig: [ @@ -2958,9 +2910,9 @@ describe("DeciderModule", () => { consent: "A consent text" }, { - "@type": "FreeTextRequestItem", + "@type": "ConsentRequestItem", mustBeAccepted: false, - freeText: "A free text" + consent: "Another consent text" } ] }, @@ -3074,17 +3026,26 @@ describe("DeciderModule", () => { { requestConfig: { peer: sender.address, - "content.item.@type": "FreeTextRequestItem" + "content.item.@type": "DeleteAttributeRequestItem" }, responseConfig: { accept: true, - freeText: "A free response text" + deletionDate: CoreDate.utc().add({ days: 1 }).toString() } } ] }; - const recipient = (await runtimeServiceProvider.launch(1, { enableDeciderModule: true, configureDeciderModule: deciderConfig }))[0]; + const recipient = (await runtimeServiceProvider.launch(1, { enableDeciderModule: true, configureDeciderModule: deciderConfig, enableRequestModule: true }))[0]; + await establishRelationship(sender.transport, recipient.transport); + const sharedAttribute = await executeFullCreateAndShareRepositoryAttributeFlow(sender, recipient, { + content: { + value: { + "@type": "GivenName", + value: "Given name of sender" + } + } + }); const message = await exchangeMessage(sender.transport, recipient.transport); const receivedRequestResult = await recipient.consumption.incomingRequests.received({ @@ -3102,9 +3063,9 @@ describe("DeciderModule", () => { consent: "A consent text" }, { - "@type": "FreeTextRequestItem", + "@type": "DeleteAttributeRequestItem", mustBeAccepted: false, - freeText: "A free request text" + attributeId: sharedAttribute.id } ] }, @@ -3128,7 +3089,7 @@ describe("DeciderModule", () => { expect(responseItems).toHaveLength(3); expect(responseItems[0]["@type"]).toBe("RejectResponseItem"); expect(responseItems[1]["@type"]).toBe("AcceptResponseItem"); - expect(responseItems[2]["@type"]).toBe("FreeTextAcceptResponseItem"); + expect(responseItems[2]["@type"]).toBe("DeleteAttributeAcceptResponseItem"); }); test("cannot decide a Request if a mustBeAccepted RequestItem is not accepted", async () => { @@ -3188,7 +3149,7 @@ describe("DeciderModule", () => { automationConfig: [ { requestConfig: { - "content.item.@type": "FreeTextRequestItem" + "content.item.@type": "AuthenticationRequestItem" }, responseConfig: { accept: true, diff --git a/packages/runtime/test/modules/DeciderModule.unit.test.ts b/packages/runtime/test/modules/DeciderModule.unit.test.ts index ba1918707..08ee5ef68 100644 --- a/packages/runtime/test/modules/DeciderModule.unit.test.ts +++ b/packages/runtime/test/modules/DeciderModule.unit.test.ts @@ -7,8 +7,6 @@ import { CreateAttributeRequestItemConfig, DeleteAttributeAcceptResponseConfig, DeleteAttributeRequestItemConfig, - FreeTextAcceptResponseConfig, - FreeTextRequestItemConfig, GeneralRequestConfig, ProposeAttributeRequestItemConfig, ProposeAttributeWithNewAttributeAcceptResponseConfig, @@ -69,11 +67,6 @@ describe("DeciderModule unit tests", () => { deletionDate: "deletionDate" }; - const freeTextAcceptResponseConfig: FreeTextAcceptResponseConfig = { - accept: true, - freeText: "freeText" - }; - const proposeAttributeWithNewAttributeAcceptResponseConfig: ProposeAttributeWithNewAttributeAcceptResponseConfig = { accept: true, attribute: IdentityAttribute.from({ @@ -116,11 +109,6 @@ describe("DeciderModule unit tests", () => { "content.item.@type": "DeleteAttributeRequestItem" }; - const freeTextRequestItemConfig: FreeTextRequestItemConfig = { - "content.item.@type": "FreeTextRequestItem", - "content.item.freeText": "A free text" - }; - const proposeAttributeRequestItemConfig: ProposeAttributeRequestItemConfig = { "content.item.@type": "ProposeAttributeRequestItem" }; @@ -141,70 +129,54 @@ describe("DeciderModule unit tests", () => { [generalRequestConfig, rejectResponseConfig, true], [generalRequestConfig, simpleAcceptResponseConfig, true], [generalRequestConfig, deleteAttributeAcceptResponseConfig, false], - [generalRequestConfig, freeTextAcceptResponseConfig, false], [generalRequestConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [generalRequestConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [authenticationRequestItemConfig, rejectResponseConfig, true], [authenticationRequestItemConfig, simpleAcceptResponseConfig, true], [authenticationRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [authenticationRequestItemConfig, freeTextAcceptResponseConfig, false], [authenticationRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [authenticationRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [consentRequestItemConfig, rejectResponseConfig, true], [consentRequestItemConfig, simpleAcceptResponseConfig, true], [consentRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [consentRequestItemConfig, freeTextAcceptResponseConfig, false], [consentRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [consentRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [createAttributeRequestItemConfig, rejectResponseConfig, true], [createAttributeRequestItemConfig, simpleAcceptResponseConfig, true], [createAttributeRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [createAttributeRequestItemConfig, freeTextAcceptResponseConfig, false], [createAttributeRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [createAttributeRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [deleteAttributeRequestItemConfig, rejectResponseConfig, true], [deleteAttributeRequestItemConfig, simpleAcceptResponseConfig, false], [deleteAttributeRequestItemConfig, deleteAttributeAcceptResponseConfig, true], - [deleteAttributeRequestItemConfig, freeTextAcceptResponseConfig, false], [deleteAttributeRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [deleteAttributeRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], - [freeTextRequestItemConfig, rejectResponseConfig, true], - [freeTextRequestItemConfig, simpleAcceptResponseConfig, false], - [freeTextRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [freeTextRequestItemConfig, freeTextAcceptResponseConfig, true], - [freeTextRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], - [freeTextRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], - [proposeAttributeRequestItemConfig, rejectResponseConfig, true], [proposeAttributeRequestItemConfig, simpleAcceptResponseConfig, false], [proposeAttributeRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [proposeAttributeRequestItemConfig, freeTextAcceptResponseConfig, false], [proposeAttributeRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, true], [proposeAttributeRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [readAttributeRequestItemConfig, rejectResponseConfig, true], [readAttributeRequestItemConfig, simpleAcceptResponseConfig, false], [readAttributeRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [readAttributeRequestItemConfig, freeTextAcceptResponseConfig, false], [readAttributeRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [readAttributeRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, true], [registerAttributeListenerRequestItemConfig, rejectResponseConfig, true], [registerAttributeListenerRequestItemConfig, simpleAcceptResponseConfig, true], [registerAttributeListenerRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [registerAttributeListenerRequestItemConfig, freeTextAcceptResponseConfig, false], [registerAttributeListenerRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [registerAttributeListenerRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false], [shareAttributeRequestItemConfig, rejectResponseConfig, true], [shareAttributeRequestItemConfig, simpleAcceptResponseConfig, true], [shareAttributeRequestItemConfig, deleteAttributeAcceptResponseConfig, false], - [shareAttributeRequestItemConfig, freeTextAcceptResponseConfig, false], [shareAttributeRequestItemConfig, proposeAttributeWithNewAttributeAcceptResponseConfig, false], [shareAttributeRequestItemConfig, readAttributeWithNewAttributeAcceptResponseConfig, false] ])("%p and %p should return %p as validation result", (requestConfig, responseConfig, expectedCompatibility) => {