-
Notifications
You must be signed in to change notification settings - Fork 58
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1265 from Adyen/automation/release
Release v14.4.0
- Loading branch information
Showing
24 changed files
with
1,279 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
import nock from "nock"; | ||
import { createClient } from "../__mocks__/base"; | ||
import {DisputesAPI} from "../services"; | ||
import Client from "../client"; | ||
import { AcceptDisputeRequest } from "../typings/disputes/acceptDisputeRequest"; | ||
import { AcceptDisputeResponse } from "../typings/disputes/acceptDisputeResponse"; | ||
import { DefendDisputeRequest } from "../typings/disputes/defendDisputeRequest"; | ||
import { DefendDisputeResponse } from "../typings/disputes/defendDisputeResponse"; | ||
import { DeleteDefenseDocumentRequest } from "../typings/disputes/deleteDefenseDocumentRequest"; | ||
import { DeleteDefenseDocumentResponse } from "../typings/disputes/deleteDefenseDocumentResponse"; | ||
import { DefenseReasonsRequest } from "../typings/disputes/defenseReasonsRequest"; | ||
import { DefenseReasonsResponse } from "../typings/disputes/defenseReasonsResponse"; | ||
import { SupplyDefenseDocumentRequest } from "../typings/disputes/supplyDefenseDocumentRequest"; | ||
import { SupplyDefenseDocumentResponse } from "../typings/disputes/supplyDefenseDocumentResponse"; | ||
|
||
let client: Client, | ||
disputesService: DisputesAPI, | ||
scope: nock.Scope; | ||
|
||
beforeEach((): void => { | ||
if (!nock.isActive()) { | ||
nock.activate(); | ||
} | ||
client = createClient(); | ||
disputesService = new DisputesAPI(client); | ||
scope = nock("https://ca-test.adyen.com/ca/services/DisputeService/v30"); | ||
}); | ||
|
||
afterEach(() => { | ||
nock.cleanAll(); | ||
}); | ||
|
||
describe("Disputes", (): void => { | ||
test("Should Accept Dispute", async (): Promise<void> => { | ||
const expected = { | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: AcceptDisputeRequest = new AcceptDisputeRequest; | ||
|
||
scope.post("/acceptDispute") | ||
.reply(200, expected); | ||
|
||
const response: AcceptDisputeResponse = await disputesService.acceptDispute(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
}); | ||
|
||
test("Should Defend Dispute", async (): Promise<void> => { | ||
const expected = { | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: DefendDisputeRequest = new DefendDisputeRequest; | ||
|
||
scope.post("/defendDispute") | ||
.reply(200, expected); | ||
|
||
const response: DefendDisputeResponse = await disputesService.defendDispute(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
}); | ||
|
||
test("Should delete Dispute defense document", async (): Promise<void> => { | ||
const expected = { | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: DeleteDefenseDocumentRequest = new DeleteDefenseDocumentRequest; | ||
|
||
scope.post("/deleteDisputeDefenseDocument") | ||
.reply(200, expected); | ||
|
||
const response: DeleteDefenseDocumentResponse = await disputesService.deleteDisputeDefenseDocument(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
}); | ||
|
||
test("Should download Dispute defense document", async (): Promise<void> => { | ||
const expected = { | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: DeleteDefenseDocumentRequest = new DeleteDefenseDocumentRequest; | ||
|
||
scope.post("/deleteDisputeDefenseDocument") | ||
.reply(200, expected); | ||
|
||
const response: DeleteDefenseDocumentResponse = await disputesService.deleteDisputeDefenseDocument(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
}); | ||
|
||
test("Should retrieve defense reasons", async (): Promise<void> => { | ||
const expected = { | ||
"defenseReasons": [ | ||
{ | ||
"defenseDocumentTypes": [ | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "TIDorInvoice", | ||
"requirementLevel": "Optional" | ||
}, | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "GoodsNotReturned", | ||
"requirementLevel": "Required" | ||
} | ||
], | ||
"defenseReasonCode": "GoodsNotReturned", | ||
"satisfied": false | ||
}, | ||
{ | ||
"defenseDocumentTypes": [ | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "TIDorInvoice", | ||
"requirementLevel": "Optional" | ||
}, | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "GoodsRepairedOrReplaced", | ||
"requirementLevel": "Required" | ||
} | ||
], | ||
"defenseReasonCode": "GoodsRepairedOrReplaced", | ||
"satisfied": false | ||
}, | ||
{ | ||
"defenseDocumentTypes": [ | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "GoodsWereAsDescribed", | ||
"requirementLevel": "Required" | ||
}, | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "TIDorInvoice", | ||
"requirementLevel": "Required" | ||
} | ||
], | ||
"defenseReasonCode": "GoodsWereAsDescribed", | ||
"satisfied": false | ||
}, | ||
{ | ||
"defenseDocumentTypes": [ | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "TIDorInvoice", | ||
"requirementLevel": "Optional" | ||
}, | ||
{ | ||
"available": false, | ||
"defenseDocumentTypeCode": "DefenseMaterial", | ||
"requirementLevel": "Required" | ||
} | ||
], | ||
"defenseReasonCode": "SupplyDefenseMaterial", | ||
"satisfied": false | ||
} | ||
], | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: DefenseReasonsRequest = new DefenseReasonsRequest; | ||
|
||
scope.post("/retrieveApplicableDefenseReasons") | ||
.reply(200, expected); | ||
|
||
const response: DefenseReasonsResponse = await disputesService.retrieveApplicableDefenseReasons(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
expect(response.defenseReasons?.length).toEqual(4); | ||
}); | ||
|
||
test("Should supply Dispute defense document", async (): Promise<void> => { | ||
const expected = { | ||
"disputeServiceResult": { | ||
"success": true | ||
} | ||
}; | ||
const request: SupplyDefenseDocumentRequest = new SupplyDefenseDocumentRequest; | ||
|
||
scope.post("/supplyDefenseDocument") | ||
.reply(200, expected); | ||
|
||
const response: SupplyDefenseDocumentResponse = await disputesService.supplyDefenseDocument(request); | ||
expect(response.disputeServiceResult.success).toEqual(true); | ||
}); | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
/* | ||
* The version of the OpenAPI document: v30 | ||
* | ||
* | ||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | ||
* https://openapi-generator.tech | ||
* Do not edit this class manually. | ||
*/ | ||
|
||
import Client from "../client"; | ||
import getJsonResponse from "../helpers/getJsonResponse"; | ||
import Service from "../service"; | ||
import { AcceptDisputeRequest } from "../typings/disputes/models"; | ||
import { AcceptDisputeResponse } from "../typings/disputes/models"; | ||
import { DefendDisputeRequest } from "../typings/disputes/models"; | ||
import { DefendDisputeResponse } from "../typings/disputes/models"; | ||
import { DefenseReasonsRequest } from "../typings/disputes/models"; | ||
import { DefenseReasonsResponse } from "../typings/disputes/models"; | ||
import { DeleteDefenseDocumentRequest } from "../typings/disputes/models"; | ||
import { DeleteDefenseDocumentResponse } from "../typings/disputes/models"; | ||
import { DownloadDefenseDocumentRequest } from "../typings/disputes/models"; | ||
import { DownloadDefenseDocumentResponse } from "../typings/disputes/models"; | ||
import { SupplyDefenseDocumentRequest } from "../typings/disputes/models"; | ||
import { SupplyDefenseDocumentResponse } from "../typings/disputes/models"; | ||
import { IRequest } from "../typings/requestOptions"; | ||
import Resource from "./resource"; | ||
import { ObjectSerializer } from "../typings/disputes/models"; | ||
|
||
export class DisputesAPI extends Service { | ||
|
||
private readonly API_BASEPATH: string = "https://ca-test.adyen.com/ca/services/DisputeService/v30"; | ||
private baseUrl: string; | ||
|
||
public constructor(client: Client) { | ||
super(client); | ||
this.baseUrl = this.createBaseUrl(this.API_BASEPATH); | ||
} | ||
|
||
/** | ||
* @summary Accept a dispute | ||
* @param acceptDisputeRequest {@link AcceptDisputeRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link AcceptDisputeResponse } | ||
*/ | ||
public async acceptDispute(acceptDisputeRequest: AcceptDisputeRequest, requestOptions?: IRequest.Options): Promise<AcceptDisputeResponse> { | ||
const endpoint = `${this.baseUrl}/acceptDispute`; | ||
const resource = new Resource(this, endpoint); | ||
const request: AcceptDisputeRequest = ObjectSerializer.serialize(acceptDisputeRequest, "AcceptDisputeRequest"); | ||
const response = await getJsonResponse<AcceptDisputeRequest, AcceptDisputeResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "AcceptDisputeResponse"); | ||
} | ||
|
||
/** | ||
* @summary Defend a dispute | ||
* @param defendDisputeRequest {@link DefendDisputeRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link DefendDisputeResponse } | ||
*/ | ||
public async defendDispute(defendDisputeRequest: DefendDisputeRequest, requestOptions?: IRequest.Options): Promise<DefendDisputeResponse> { | ||
const endpoint = `${this.baseUrl}/defendDispute`; | ||
const resource = new Resource(this, endpoint); | ||
const request: DefendDisputeRequest = ObjectSerializer.serialize(defendDisputeRequest, "DefendDisputeRequest"); | ||
const response = await getJsonResponse<DefendDisputeRequest, DefendDisputeResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "DefendDisputeResponse"); | ||
} | ||
|
||
/** | ||
* @summary Delete a defense document | ||
* @param deleteDefenseDocumentRequest {@link DeleteDefenseDocumentRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link DeleteDefenseDocumentResponse } | ||
*/ | ||
public async deleteDisputeDefenseDocument(deleteDefenseDocumentRequest: DeleteDefenseDocumentRequest, requestOptions?: IRequest.Options): Promise<DeleteDefenseDocumentResponse> { | ||
const endpoint = `${this.baseUrl}/deleteDisputeDefenseDocument`; | ||
const resource = new Resource(this, endpoint); | ||
const request: DeleteDefenseDocumentRequest = ObjectSerializer.serialize(deleteDefenseDocumentRequest, "DeleteDefenseDocumentRequest"); | ||
const response = await getJsonResponse<DeleteDefenseDocumentRequest, DeleteDefenseDocumentResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "DeleteDefenseDocumentResponse"); | ||
} | ||
|
||
/** | ||
* @summary Download a defense document | ||
* @param downloadDefenseDocumentRequest {@link DownloadDefenseDocumentRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link DownloadDefenseDocumentResponse } | ||
*/ | ||
public async downloadDisputeDefenseDocument(downloadDefenseDocumentRequest: DownloadDefenseDocumentRequest, requestOptions?: IRequest.Options): Promise<DownloadDefenseDocumentResponse> { | ||
const endpoint = `${this.baseUrl}/downloadDisputeDefenseDocument`; | ||
const resource = new Resource(this, endpoint); | ||
const request: DownloadDefenseDocumentRequest = ObjectSerializer.serialize(downloadDefenseDocumentRequest, "DownloadDefenseDocumentRequest"); | ||
const response = await getJsonResponse<DownloadDefenseDocumentRequest, DownloadDefenseDocumentResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "DownloadDefenseDocumentResponse"); | ||
} | ||
|
||
/** | ||
* @summary Get applicable defense reasons | ||
* @param defenseReasonsRequest {@link DefenseReasonsRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link DefenseReasonsResponse } | ||
*/ | ||
public async retrieveApplicableDefenseReasons(defenseReasonsRequest: DefenseReasonsRequest, requestOptions?: IRequest.Options): Promise<DefenseReasonsResponse> { | ||
const endpoint = `${this.baseUrl}/retrieveApplicableDefenseReasons`; | ||
const resource = new Resource(this, endpoint); | ||
const request: DefenseReasonsRequest = ObjectSerializer.serialize(defenseReasonsRequest, "DefenseReasonsRequest"); | ||
const response = await getJsonResponse<DefenseReasonsRequest, DefenseReasonsResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "DefenseReasonsResponse"); | ||
} | ||
|
||
/** | ||
* @summary Supply a defense document | ||
* @param supplyDefenseDocumentRequest {@link SupplyDefenseDocumentRequest } | ||
* @param requestOptions {@link IRequest.Options} | ||
* @return {@link SupplyDefenseDocumentResponse } | ||
*/ | ||
public async supplyDefenseDocument(supplyDefenseDocumentRequest: SupplyDefenseDocumentRequest, requestOptions?: IRequest.Options): Promise<SupplyDefenseDocumentResponse> { | ||
const endpoint = `${this.baseUrl}/supplyDefenseDocument`; | ||
const resource = new Resource(this, endpoint); | ||
const request: SupplyDefenseDocumentRequest = ObjectSerializer.serialize(supplyDefenseDocumentRequest, "SupplyDefenseDocumentRequest"); | ||
const response = await getJsonResponse<SupplyDefenseDocumentRequest, SupplyDefenseDocumentResponse>( | ||
resource, | ||
request, | ||
{ ...requestOptions, method: "POST" } | ||
); | ||
return ObjectSerializer.deserialize(response, "SupplyDefenseDocumentResponse"); | ||
} | ||
} | ||
|
||
export default DisputesAPI; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.