Reworking MS-SQL test case to be able to get the sql now with a request being made for each internal query, rather than just at connection.

This commit is contained in:
mike12345567 2021-11-09 11:16:12 +00:00
parent 2f1c22085c
commit a78230e23b
2 changed files with 23 additions and 16 deletions

View File

@ -15,7 +15,7 @@ module MsSqlMock {
mssql.ConnectionPool = jest.fn(() => ({
connect: jest.fn(() => ({
request: jest.fn(() => ({
query: jest.fn(() => ({})),
query: jest.fn(sql => ({ recordset: [ sql ] })),
})),
})),
}))

View File

@ -11,16 +11,22 @@ class TestConfiguration {
describe("MS SQL Server Integration", () => {
let config
beforeEach(() => {
beforeEach(async () => {
config = new TestConfiguration()
})
describe("check sql used", () => {
beforeEach(async () => {
await config.integration.connect()
})
it("calls the create method with the correct params", async () => {
const sql = "insert into users (name, age) values ('Joe', 123);"
const response = await config.integration.create({
sql
})
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {})
expect(config.integration.client.request).toHaveBeenCalledWith()
expect(response[0]).toEqual(sql)
})
it("calls the read method with the correct params", async () => {
@ -28,13 +34,14 @@ describe("MS SQL Server Integration", () => {
const response = await config.integration.read({
sql
})
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {})
expect(config.integration.client.request).toHaveBeenCalledWith()
expect(response[0]).toEqual(sql)
})
})
describe("no rows returned", () => {
beforeEach(async () => {
await config.integration.connect()
config.integration.client.query.mockImplementation(() => ({ rows: [] }))
})
it("returns the correct response when the create response has no rows", async () => {
@ -42,7 +49,7 @@ describe("MS SQL Server Integration", () => {
const response = await config.integration.create({
sql
})
expect(response).toEqual([{ created: true }])
expect(response[0]).toEqual(sql)
})
})
})