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(() => ({ mssql.ConnectionPool = jest.fn(() => ({
connect: jest.fn(() => ({ connect: jest.fn(() => ({
request: jest.fn(() => ({ request: jest.fn(() => ({
query: jest.fn(() => ({})), query: jest.fn(sql => ({ recordset: [ sql ] })),
})), })),
})), })),
})) }))

View File

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