mirror of https://github.com/Budibase/budibase.git
3 changed files with 141 additions and 1 deletions
@ -0,0 +1,37 @@ |
|||
const aws = {} |
|||
|
|||
const response = body => () => ({ promise: () => body }) |
|||
|
|||
function DocumentClient() { |
|||
this.put = jest.fn(response({})) |
|||
this.query = jest.fn( |
|||
response({ |
|||
Items: [], |
|||
}) |
|||
) |
|||
this.scan = jest.fn( |
|||
response({ |
|||
Items: [ |
|||
{ |
|||
Name: "test", |
|||
}, |
|||
], |
|||
}) |
|||
) |
|||
this.get = jest.fn(response({})) |
|||
this.update = jest.fn(response({})) |
|||
this.delete = jest.fn(response({})) |
|||
} |
|||
|
|||
function S3() { |
|||
this.listObjects = jest.fn( |
|||
response({ |
|||
foo: {}, |
|||
}) |
|||
) |
|||
} |
|||
|
|||
aws.DynamoDB = { DocumentClient } |
|||
aws.config = { update: jest.fn() } |
|||
|
|||
module.exports = aws |
|||
@ -0,0 +1,103 @@ |
|||
const AWS = require("aws-sdk") |
|||
const DynamoDBIntegration = require("../dynamodb") |
|||
jest.mock("aws-sdk") |
|||
|
|||
class TestConfiguration { |
|||
constructor(config = {}) { |
|||
this.integration = new DynamoDBIntegration.integration(config) |
|||
} |
|||
} |
|||
|
|||
describe("DynamoDB Integration", () => { |
|||
let config |
|||
let tableName = "Users" |
|||
|
|||
beforeEach(() => { |
|||
config = new TestConfiguration() |
|||
}) |
|||
|
|||
it("calls the create method with the correct params", async () => { |
|||
const response = await config.integration.create({ |
|||
table: tableName, |
|||
json: { |
|||
Name: "John" |
|||
} |
|||
}) |
|||
expect(config.integration.client.put).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
Name: "John" |
|||
}) |
|||
}) |
|||
|
|||
it("calls the read method with the correct params", async () => { |
|||
const indexName = "Test" |
|||
|
|||
const response = await config.integration.read({ |
|||
table: tableName, |
|||
index: indexName, |
|||
json: {} |
|||
}) |
|||
expect(config.integration.client.query).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
IndexName: indexName, |
|||
}) |
|||
expect(response).toEqual([]) |
|||
}) |
|||
|
|||
it("calls the scan method with the correct params", async () => { |
|||
const indexName = "Test" |
|||
|
|||
const response = await config.integration.scan({ |
|||
table: tableName, |
|||
index: indexName, |
|||
json: {} |
|||
}) |
|||
expect(config.integration.client.scan).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
IndexName: indexName, |
|||
}) |
|||
expect(response).toEqual([{ |
|||
Name: "test" |
|||
}]) |
|||
}) |
|||
|
|||
it("calls the get method with the correct params", async () => { |
|||
const response = await config.integration.get({ |
|||
table: tableName, |
|||
json: { |
|||
Id: 123 |
|||
} |
|||
}) |
|||
|
|||
expect(config.integration.client.get).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
Id: 123 |
|||
}) |
|||
}) |
|||
|
|||
it("calls the update method with the correct params", async () => { |
|||
const response = await config.integration.update({ |
|||
table: tableName, |
|||
json: { |
|||
Name: "John" |
|||
} |
|||
}) |
|||
expect(config.integration.client.update).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
Name: "John" |
|||
}) |
|||
}) |
|||
|
|||
it("calls the delete method with the correct params", async () => { |
|||
const response = await config.integration.delete({ |
|||
table: tableName, |
|||
json: { |
|||
Name: "John" |
|||
} |
|||
}) |
|||
expect(config.integration.client.delete).toHaveBeenCalledWith({ |
|||
TableName: tableName, |
|||
Name: "John" |
|||
}) |
|||
}) |
|||
}) |
|||
Loading…
Reference in new issue