@adamsy/bhai-lang
Version:
<h1 align="center">Bhai Lang</h1> <p align="center"> <a href="https://lgtm.com/projects/g/DulLabs/bhai-lang/alerts/"><img alt="Total alerts" src="https://img.shields.io/lgtm/alerts/g/DulLabs/bhai-lang.svg?logo=lgtm&logoWidth=18"/></a> <a href="https://lgt
90 lines (86 loc) • 2.85 kB
text/typescript
import Scope from "../../src/components/scope";
import InvalidStateException from "../../src/exceptions/invalidStateException";
import InterpreterModule from "../../src/module/interpreterModule";
jest.mock("../../src/components/visitor/program", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/initStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/printStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/emptyStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/blockStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/variableStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/identifierExpression", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/variableDeclaration", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/assignmentExpression", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/expressionStatement", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/binaryExpression", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/stringLiteral", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/numericLiteral", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/booleanLiteral", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
jest.mock("../../src/components/visitor/nullLiteral", () => {
return jest.fn().mockImplementation(() => ({
visitNode: jest.fn(),
}));
});
test("interpreter test InterpreterModule getVisitor with unknown node type should throw an exception", () => {
expect(() =>
InterpreterModule.getVisitor("visitor_for_this_node_type_not_present")
).toThrow(InvalidStateException);
});
test("interpreter test InterpreterModule getCurrentScope should success", () => {
expect(InterpreterModule.getCurrentScope()).toBeInstanceOf(Scope);
});