* Added unit tests for the post-request tests * Added 2 top level functions to avoid duplication of code * Simplified tests for toBe and error handling * Added a test for asserting string values with toBe * Added a test for negative assertion with toBe * Added tests for toHaveProperty * Imported PASS, FAIL and ERROR constants * Use getTestResult and getErrors to avoid duplication of code * Removed .vscode/settings.json * Minor cleanup to postwomanTesting.spec.js * Revert change of runTestScriptWithVariables back to default export Co-authored-by: Liyas Thomas <liyascthomas@gmail.com> Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
import { PASS, FAIL } from "../postwomanTesting"
|
|
import runTestScriptWithVariables from "../postwomanTesting"
|
|
|
|
function getTestResult(script, index) {
|
|
return runTestScriptWithVariables(script).testResults[index].result
|
|
}
|
|
|
|
function getErrors(script) {
|
|
return runTestScriptWithVariables(script).errors
|
|
}
|
|
|
|
describe("Error handling", () => {
|
|
test("throws error at unknown test method", () => {
|
|
const testScriptWithUnknownMethod = "pw.expect(1).toBeSomeUnknownMethod()"
|
|
expect(() => {
|
|
runTestScriptWithVariables(testScriptWithUnknownMethod)
|
|
}).toThrow()
|
|
})
|
|
test("errors array is empty on a successful test", () => {
|
|
expect(getErrors("pw.expect(1).toBe(1)")).toStrictEqual([])
|
|
})
|
|
})
|
|
|
|
describe("toBe", () => {
|
|
test("test for numbers", () => {
|
|
expect(getTestResult("pw.expect(1).toBe(2)", 0)).toEqual(FAIL)
|
|
|
|
expect(getTestResult("pw.expect(1).toBe(1)", 0)).toEqual(PASS)
|
|
})
|
|
|
|
test("test for strings", () => {
|
|
expect(getTestResult("pw.expect('hello').toBe('bonjour')", 0)).toEqual(FAIL)
|
|
expect(getTestResult("pw.expect('hi').toBe('hi')", 0)).toEqual(PASS)
|
|
})
|
|
|
|
test("test for negative assertion (.not.toBe)", () => {
|
|
expect(getTestResult("pw.expect(1).not.toBe(1)", 0)).toEqual(FAIL)
|
|
expect(getTestResult("pw.expect(1).not.toBe(2)", 0)).toEqual(PASS)
|
|
expect(getTestResult("pw.expect('world').not.toBe('planet')", 0)).toEqual(PASS)
|
|
expect(getTestResult("pw.expect('world').not.toBe('world')", 0)).toEqual(FAIL)
|
|
})
|
|
})
|
|
|
|
describe("toHaveProperty", () => {
|
|
const dummyResponse = {
|
|
id: 843,
|
|
description: "random",
|
|
}
|
|
|
|
test("test for positive assertion (.toHaveProperty)", () => {
|
|
expect(
|
|
getTestResult(`pw.expect(${JSON.stringify(dummyResponse)}).toHaveProperty("id")`, 0)
|
|
).toEqual(PASS)
|
|
expect(getTestResult(`pw.expect(${dummyResponse.id}).toBe(843)`, 0)).toEqual(PASS)
|
|
})
|
|
test("test for negative assertion (.not.toHaveProperty)", () => {
|
|
expect(
|
|
getTestResult(`pw.expect(${JSON.stringify(dummyResponse)}).not.toHaveProperty("type")`, 0)
|
|
).toEqual(PASS)
|
|
expect(
|
|
getTestResult(`pw.expect(${JSON.stringify(dummyResponse)}).toHaveProperty("type")`, 0)
|
|
).toEqual(FAIL)
|
|
})
|
|
})
|