Skip to content

Commit

Permalink
added extra checks by typescript compiler to tests as well
Browse files Browse the repository at this point in the history
  • Loading branch information
annekekleppe committed Jun 7, 2024
1 parent 2fb9bd5 commit 594dbd1
Show file tree
Hide file tree
Showing 19 changed files with 830 additions and 678 deletions.
166 changes: 89 additions & 77 deletions packages/meta/src/__tests__/editor-tests/checkCheckingErrors.test.ts

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,20 @@ describe("Checking FretEditUnit: ", () => {
language = new LanguageParser().parse("src/__tests__/commonAstFiles/test-language.ast");
parser = new FreEditParser(language);
checker = parser.checker;
} catch (e) {
console.log("Language could not be read");
} catch (e: unknown) {
if (e instanceof Error) {
console.log("Language could not be read");
}
}
// read the .edit file
let editor: FreEditUnit;
try {
editor = parser.parse(parseFile);
} catch (e) {
console.log(e.message + e.stack);
console.log(checker.errors.map(err => `"${err}"`).join("\n"));
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
console.log(checker.errors.map(err => `"${err}"`).join("\n"));
}
}
if (editor !== null && editor !== undefined) {
DefaultEditorGenerator.addDefaults(editor);
Expand Down
78 changes: 46 additions & 32 deletions packages/meta/src/__tests__/editor-tests/checkIndentation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,24 @@ describe("Checking indentation ", () => {
language = new LanguageParser().parse("src/__tests__/commonAstFiles/test-language.ast");
parser = new FreEditParser(language);
checker = parser.checker;
} catch (e) {
console.log("Language could not be read");
} catch (e: unknown) {
if (e instanceof Error) {
console.log("Language could not be read");
}
}
});

test("without optionals", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test1.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myAAA: FreMetaClassifier = language.units.find(c => c.name === "AAAAAA");
expect(myAAA).not.toBeNull();
Expand Down Expand Up @@ -70,11 +74,13 @@ describe("Checking indentation ", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test2.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myAAA: FreMetaClassifier = language.units.find(c => c.name === "AAAAAA");
expect(myAAA).not.toBeNull();
Expand Down Expand Up @@ -103,11 +109,13 @@ describe("Checking indentation ", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test3.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myAAA: FreMetaClassifier = language.units.find(c => c.name === "AAAAAA");
expect(myAAA).not.toBeNull();
Expand Down Expand Up @@ -136,11 +144,13 @@ describe("Checking indentation ", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test4.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myCC = language.concepts.find(c => c.name === "CC");
expect(myCC).not.toBeNull();
Expand All @@ -155,11 +165,13 @@ describe("Checking indentation ", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test5.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myCC = language.concepts.find(c => c.name === "CC");
expect(myCC).not.toBeNull();
Expand All @@ -179,11 +191,13 @@ describe("Checking indentation ", () => {
let editDef: FreEditUnit;
try {
editDef = parser.parse(testdir + "test6.edit");
} catch (e) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
} catch (e: unknown) {
if (e instanceof Error) {
console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n"));
// tslint:disable-next-line:no-unused-expression
expect(e.message).toBeNull();
}
}
const myCC = language.concepts.find(c => c.name === "CC");
expect(myCC).not.toBeNull();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ describe("Checking expression parser on syntax errors", () => {
beforeEach(() => {
try {
const language = new LanguageParser().parse(testdir + "testLanguage.ast");
} catch (e) {
console.log("Language could not be read");
} catch (e: unknown) {
if (e instanceof Error) {
console.log("Language could not be read");
}
}
});

Expand All @@ -25,21 +27,23 @@ describe("Checking expression parser on syntax errors", () => {
const demoExpressionFile = testdir + "demoExpressions.fretest";
try {
const readTest = parser.parse(demoExpressionFile);
} catch (e) {
// console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n") );
expect(e.message).toBe(`checking errors (9).`);
expect(checker.errors
.includes("List property 'entities' should not have an applied expression (.expr) [file: demoExpressions.fretest:5:9].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'expr' in 'DemoEntity' [file: demoExpressions.fretest:5:18]."));
expect(checker.errors.includes("Cannot find property 'int_attr' in 'DemoEntity' [file: demoExpressions.fretest:11:9].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'attrutes' in 'DemoEntity' [file: demoExpressions.fretest:13:9].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:19:14].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:23:6].")).toBeTruthy();
expect(checker.errors
.includes("Function 'conformsTo' in 'DemoFunction' should have 2 parameters, found 1 [file: demoExpressions.fretest:27:5].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:29:5].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'extra' in 'DemoVariable' [file: demoExpressions.fretest:33:9].")).toBeTruthy();
} catch (e: unknown) {
if (e instanceof Error) {
// console.log(e.message + e.stack);
// console.log(checker.errors.map(err => `"${err}"`).join("\n") );
expect(e.message).toBe(`checking errors (9).`);
expect(checker.errors
.includes("List property 'entities' should not have an applied expression (.expr) [file: demoExpressions.fretest:5:9].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'expr' in 'DemoEntity' [file: demoExpressions.fretest:5:18]."));
expect(checker.errors.includes("Cannot find property 'int_attr' in 'DemoEntity' [file: demoExpressions.fretest:11:9].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'attrutes' in 'DemoEntity' [file: demoExpressions.fretest:13:9].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:19:14].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:23:6].")).toBeTruthy();
expect(checker.errors
.includes("Function 'conformsTo' in 'DemoFunction' should have 2 parameters, found 1 [file: demoExpressions.fretest:27:5].")).toBeTruthy();
expect(checker.errors.includes("Expression should start with 'self' [file: demoExpressions.fretest:29:5].")).toBeTruthy();
expect(checker.errors.includes("Cannot find property 'extra' in 'DemoVariable' [file: demoExpressions.fretest:33:9].")).toBeTruthy();
}
}
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ describe("Checking expression on referredElement", () => {
beforeEach(() => {
try {
language = new LanguageParser().parse(testdir + "testLanguage.ast");
} catch (e) {
console.log("Language could not be read");
} catch (e: unknown) {
if (e instanceof Error) {
console.log("Language could not be read");
}
}
});

Expand Down
Loading

0 comments on commit 594dbd1

Please sign in to comment.