Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion sandbox/node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
},
"dependencies": {
"@dropbox/sign": "file:./artifacts/dropbox-sign-sdk.tgz",
"@types/jest": "^29.5.7",
"@types/node": "^20.8.10",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"typescript": "^4.3.0"
"typescript": "^4.0 || ^5.0"
},
"type": "module",
"author": "",
"license": "ISC"
}
6 changes: 6 additions & 0 deletions sandbox/node/tests/.config.dist.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"BASE_URL": "https://api.hellosign.com/v3",
"API_KEY": "",
"CLIENT_ID": "",
"USE_XDEBUG": 0
}
1 change: 1 addition & 0 deletions sandbox/node/tests/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.config.json
141 changes: 141 additions & 0 deletions sandbox/node/tests/signatureRequest.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
// @ts-nocheck
import "jest";
import * as DropboxSign from "@dropbox/sign";
import * as fs from "fs";

describe("signatureRequest", () => {
let config: {
BASE_URL: string,
API_KEY: string,
CLIENT_ID: string,
USE_XDEBUG: boolean,
};

let headers = {};

beforeEach(() => {
const config_custom = require("./.config.json");
const config_dist = require("./.config.dist.json");
config = { ...config_dist, ...config_custom };

if (config["USE_XDEBUG"]) {
headers = {
"Cookie": "XDEBUG_SESSION=xdebug",
};
}
});

test("testSend", () => {
const signature_request_api = new DropboxSign.SignatureRequestApi();
signature_request_api.username = config.API_KEY;
signature_request_api.basePath = config.BASE_URL;
signature_request_api.defaultHeaders = headers;

const data: Partial<DropboxSign.SignatureRequestSendRequest> = require(
"./../test_fixtures/SignatureRequestSendRequest.json",
);
data["files"] = [fs.createReadStream(__dirname + "/../test_fixtures/pdf-sample.pdf")];

const send_request = DropboxSign.SignatureRequestSendRequest.init(data);

return signature_request_api.signatureRequestSend(
send_request,
).then(send_response => {
const signature_request = send_response.body.signatureRequest;

expect(send_request.formFieldsPerDocument[0].apiId)
.toBe(signature_request.customFields[0].apiId);

expect(send_request.signers[0].emailAddress)
.toBe(signature_request.signatures[0].signerEmailAddress);
expect(send_request.signers[1].emailAddress)
.toBe(signature_request.signatures[1].signerEmailAddress);
expect(send_request.signers[2].emailAddress)
.toBe(signature_request.signatures[2].signerEmailAddress);

return signature_request_api.signatureRequestGet(
signature_request.signatureRequestId,
).then(get_response => {
expect(signature_request.signatureRequestId)
.toBe(get_response.body.signatureRequest.signatureRequestId);
}).catch(error => {
throw new Error(`Should not have thrown: ${error.body}`);
});
}).catch(error => {
throw new Error(`Should not have thrown: ${error.body}`);
});
});

test("testCreateEmbedded", () => {
const signature_request_api = new DropboxSign.SignatureRequestApi();
signature_request_api.username = config.API_KEY;
signature_request_api.basePath = config.BASE_URL;
signature_request_api.defaultHeaders = headers;

const data: Partial<DropboxSign.SignatureRequestCreateEmbeddedRequest> = require(
"./../test_fixtures/SignatureRequestCreateEmbeddedRequest.json"
);
data["files"] = [fs.createReadStream(__dirname + "/../test_fixtures/pdf-sample.pdf")];
data["clientId"] = config.CLIENT_ID;

const send_request = DropboxSign.SignatureRequestCreateEmbeddedRequest.init(data);

return signature_request_api.signatureRequestCreateEmbedded(
send_request,
).then(send_response => {
const signature_request = send_response.body.signatureRequest;

expect(send_request.signers[0].emailAddress)
.toBe(signature_request.signatures[0].signerEmailAddress);
expect(send_request.signers[1].emailAddress)
.toBe(signature_request.signatures[1].signerEmailAddress);
expect(send_request.signers[2].emailAddress)
.toBe(signature_request.signatures[2].signerEmailAddress);

const embedded_api = new DropboxSign.EmbeddedApi();
embedded_api.username = config.API_KEY;
embedded_api.basePath = config.BASE_URL;
embedded_api.defaultHeaders = headers;

return embedded_api.embeddedSignUrl(
signature_request.signatures[0].signatureId,
).then(get_response => {
expect(get_response.body.embedded.signUrl).toBeTruthy();
}).catch(error => {
throw new Error(`Should not have thrown: ${error.body}`);
});
}).catch(error => {
throw new Error(`Should not have thrown: ${error.body}`);
});
});

test.concurrent("testSendWithoutFileError", async () => {
const config_custom = require("./.config.json");
const config_dist = require("./.config.dist.json");
config = { ...config_dist, ...config_custom };
let headers = {};

if (config["USE_XDEBUG"]) {
headers = {
"Cookie": "XDEBUG_SESSION=xdebug",
};
}

const signature_request_api = new DropboxSign.SignatureRequestApi();
signature_request_api.username = config.API_KEY;
signature_request_api.basePath = config.BASE_URL;
signature_request_api.defaultHeaders = headers;

const data: Partial<DropboxSign.SignatureRequestSendRequest> = require(
"./../test_fixtures/SignatureRequestSendRequest.json",
);

const request = DropboxSign.SignatureRequestSendRequest.init(data);

return signature_request_api.signatureRequestSend(request).then(response => {
expect(response).toBeFalsy();
}).catch((error: DropboxSign.HttpError) => {
expect(error.body.error.errorPath).toEqual("file");
});
});
});
4 changes: 3 additions & 1 deletion sdks/node/.gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
wwwroot/*.js
node_modules
typings
dist
# CUSTOM - BEGIN
test.*
*.tgz
.openapi-generator

.composer
tmp_docs
vendor
# CUSTOM - END
3 changes: 3 additions & 0 deletions sdks/node/.prettierrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
plugins: [require.resolve('prettier-plugin-organize-imports')]
};
2 changes: 1 addition & 1 deletion sdks/node/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.5-dev
1.6-dev
Loading