Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unit-tests: move from Jest to Mocha #1031

Merged
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ CHANGELOG.html
.DS_Store
.direnv
.tool-versions
coverage
1 change: 0 additions & 1 deletion .mocharc.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
extension: ["ts"]
require: ts-node/register
spec: './test/ui-test/*.ts'
package: "./package.json"
timeout: 10001 # default is 2000
1 change: 1 addition & 0 deletions cspell.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ dictionaries:
ignorePaths:
- syntaxes/external/*.*
- media
- package.json
6 changes: 0 additions & 6 deletions jest.config.js

This file was deleted.

6 changes: 2 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,6 @@
"devDependencies": {
"@types/chai": "^4.3.5",
"@types/glob": "^8.1.0",
"@types/jest": "^29.5.11",
"@types/minimatch": "^5.1.2",
"@types/mocha": "^10.0.1",
"@types/node": "^18.16.3",
Expand All @@ -743,16 +742,15 @@
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-tsdoc": "^0.2.17",
"glob": "^9.3.5",
"jest": "^29.7.0",
"mocha": "^10.2.0",
"mochawesome": "^7.1.3",
"mochawesome-report-generator": "^6.2.0",
"nyc": "^15.1.0",
"ovsx": "^0.8.0",
"prettier": "^3.0.0",
"react": "^18.2.0",
"rimraf": "^4.4.1",
"sinon": "^15.0.4",
"ts-jest": "^29.1.1",
"ts-loader": "^9.4.2",
"ts-node": "^10.9.1",
"typescript": "^5.1.3",
Expand Down Expand Up @@ -797,7 +795,7 @@
"package": "yarn run webpack && npx vsce package",
"preinstall": "",
"pretest": "yarn run compile",
"unit-tests": "jest test/units --coverage",
"unit-tests": "nyc --reporter=html --reporter=text --reporter=lcov mocha --recursive test/units",
"test-ui": "yarn run test-ui-current && yarn run test-ui-oldest",
"test-ui-current": "extest get-vscode -c max -s out/test-resources && extest get-chromedriver -c max -s out/test-resources && extest install-vsix -f ansible-*.vsix -e out/ext -s out/test-resources && extest install-from-marketplace redhat.vscode-yaml ms-python.python -e out/ext -s out/test-resources && extest run-tests -s out/test-resources -e out/ext --code_settings test/testFixtures/settings.json out/client/test/ui-test/allTestsSuite.js",
"test-ui-oldest": "extest get-vscode -c min -s out/test-resources && extest get-chromedriver -c min -s out/test-resources && extest install-vsix -f ansible-*.vsix -e out/ext -s out/test-resources && extest install-from-marketplace redhat.vscode-yaml ms-python.python -e out/ext -s out/test-resources && extest run-tests -s out/test-resources -e out/ext --code_settings test/testFixtures/settings.json out/client/test/ui-test/allTestsSuite.js",
Expand Down
73 changes: 41 additions & 32 deletions test/units/lightspeed/handle_api_error.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { describe, expect, test } from "@jest/globals";
import { AxiosError, AxiosHeaders } from "axios";
require("assert");

import { AxiosError, AxiosHeaders } from "axios";
import { retrieve_error } from "../../../src/features/lightspeed/handle_api_error";
import assert from "assert";

function create_error(http_code: number, data = {}): AxiosError {
const request = { path: "/wisdom" };
Expand Down Expand Up @@ -31,92 +32,100 @@ function create_error(http_code: number, data = {}): AxiosError {
}

describe("testing the error handling", () => {
test("err generic", () => {
it("err generic", () => {
const msg = retrieve_error(create_error(200));
expect(msg).toBe(
assert.equal(
msg,
"Failed to fetch inline suggestion from Ansible Lightspeed with status code: 200. Try again after some time."
);
});
test("err Unauthorized", () => {
it("err Unauthorized", () => {
const msg = retrieve_error(create_error(401));
expect(msg).toBe("User not authorized to access Ansible Lightspeed.");
assert.equal(msg, "User not authorized to access Ansible Lightspeed.");
});
test("err Too Many Requests", () => {
it("err Too Many Requests", () => {
const msg = retrieve_error(create_error(429));
expect(msg).toBe(
assert.equal(
msg,
"Too many requests to Ansible Lightspeed. Please try again after some time."
);
});
test("err Bad Request from Cloudflare", () => {
it("err Bad Request from Cloudflare", () => {
const msg = retrieve_error(
create_error(400, { message: "Some string from Cloudflare." })
);
expect(msg).toBe(
assert.equal(
msg,
"Cloudflare rejected the request. Please contact your administrator."
);
});

test("err Bad Request", () => {
it("err Bad Request", () => {
const msg = retrieve_error(create_error(400));
expect(msg).toBe("Bad Request response. Please try again.");
assert.equal(msg, "Bad Request response. Please try again.");
});

test("err Forbidden - WCA Model ID is invalid", () => {
it("err Forbidden - WCA Model ID is invalid", () => {
const msg = retrieve_error(
create_error(403, { message: "WCA Model ID is invalid" })
);
expect(msg).toBe(`Model ID is invalid. Please contact your administrator.`);
assert.equal(
msg,
`Model ID is invalid. Please contact your administrator.`
);
});

test("err Forbidden - No seat", () => {
it("err Forbidden - No seat", () => {
const msg = retrieve_error(
create_error(403, {
code: "permission_denied__org_ready_user_has_no_seat",
})
);
expect(msg).toBe(
assert.equal(
msg,
`You do not have a licensed seat for Ansible Lightspeed and your organization is using the paid commercial service. Contact your Red Hat Organization's administrator for more information on how to get a licensed seat.`
);
});

test("err Forbidden - WCA not ready", () => {
it("err Forbidden - WCA not ready", () => {
const msg = retrieve_error(
create_error(403, {
code: "permission_denied__org_not_ready_because_wca_not_configured",
})
);
expect(msg).toBe(
assert.equal(
msg,
`Contact your administrator to configure IBM watsonx Code Assistant model settings for your organization.`
);
});
test("err Forbidden", () => {
it("err Forbidden", () => {
const msg = retrieve_error(create_error(403));
expect(msg).toBe(`User not authorized to access Ansible Lightspeed.`);
assert.equal(msg, `User not authorized to access Ansible Lightspeed.`);
});
test("err Internal Server Error", () => {
it("err Internal Server Error", () => {
const msg = retrieve_error(create_error(500));
expect(msg).toBe(
assert.equal(
msg,
`Ansible Lightspeed encountered an error. Try again after some time.`
);
});
test("err Unexpected Err code", () => {
it("err Unexpected Err code", () => {
const msg = retrieve_error(create_error(999));
expect(msg).toBe(
assert.equal(
msg,
"Failed to fetch inline suggestion from Ansible Lightspeed with status code: 999. Try again after some time."
);
});
test("err Timeout", () => {
it("err Timeout", () => {
const err = create_error(0);
err.code = AxiosError.ECONNABORTED;
const msg = retrieve_error(err);
expect(msg).toBe(
assert.equal(
msg,
"Ansible Lightspeed connection timeout. Try again after some time."
);
});

test("err Unexpected Client error", () => {
it("err Unexpected Client error", () => {
const msg = retrieve_error(create_error(0));
expect(msg).toBe(
assert.equal(
msg,
"Failed to fetch inline suggestion from Ansible Lightspeed. Try again after some time."
);
});
Expand Down