intelligent-system-design-language 0.3.25 → 0.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/out/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "ISDL - Intelligent System Design Language",
4
4
  "description": "Intelligent System Design Language support for Visual Studio Code",
5
5
  "publisher": "IronMooseDevelopment",
6
- "version": "0.3.25",
6
+ "version": "0.3.26",
7
7
  "author": "Iron Moose Development",
8
8
  "repository": {
9
9
  "type": "git",
@@ -0,0 +1,61 @@
1
+ import { EmptyFileSystem } from 'langium';
2
+ import { parseHelper } from 'langium/test';
3
+ import { describe, it, expect } from 'vitest';
4
+ import { createIntelligentSystemDesignLanguageServices } from '../../language/intelligent-system-design-language-module.js';
5
+ import { isActor, isTableField, isTableSortableParam, isTableSearchableParam, isTablePinnableParam, } from '../../language/generated/ast.js';
6
+ const services = createIntelligentSystemDesignLanguageServices(EmptyFileSystem);
7
+ const parse = parseHelper(services.IntelligentSystemDesignLanguage);
8
+ const PREAMBLE = `config T {
9
+ id = "t"
10
+ }
11
+
12
+ item Spell {
13
+ string Kind
14
+ }
15
+ `;
16
+ async function parseEntry(src) {
17
+ var _a;
18
+ const doc = await parse(PREAMBLE + src, { validation: true });
19
+ const diags = ((_a = doc.diagnostics) !== null && _a !== void 0 ? _a : []).filter(d => d.severity === 1);
20
+ return { entry: doc.parseResult.value, diags };
21
+ }
22
+ function tableParams(entry, tableName) {
23
+ var _a;
24
+ const actor = entry.documents.find(isActor);
25
+ const table = actor.body.find(p => isTableField(p) && p.name === tableName);
26
+ return (_a = table === null || table === void 0 ? void 0 : table.params) !== null && _a !== void 0 ? _a : [];
27
+ }
28
+ describe('table view-preference params', () => {
29
+ it('parses sortable:/searchable:/pinnable: with no validation errors', async () => {
30
+ var _a, _b, _c;
31
+ const { entry, diags } = await parseEntry(`actor A {
32
+ table<Spell> Spells(sortable: false, searchable: false, pinnable: false)
33
+ }`);
34
+ expect(diags).toHaveLength(0);
35
+ const params = tableParams(entry, 'Spells');
36
+ expect((_a = params.find((p) => isTableSortableParam(p))) === null || _a === void 0 ? void 0 : _a.value).toBe(false);
37
+ expect((_b = params.find((p) => isTableSearchableParam(p))) === null || _b === void 0 ? void 0 : _b.value).toBe(false);
38
+ expect((_c = params.find((p) => isTablePinnableParam(p))) === null || _c === void 0 ? void 0 : _c.value).toBe(false);
39
+ });
40
+ it('accepts the params with true values too', async () => {
41
+ var _a;
42
+ const { entry, diags } = await parseEntry(`actor A {
43
+ table<Spell> Spells(sortable: true, searchable: true, pinnable: true)
44
+ }`);
45
+ expect(diags).toHaveLength(0);
46
+ const params = tableParams(entry, 'Spells');
47
+ expect((_a = params.find((p) => isTableSortableParam(p))) === null || _a === void 0 ? void 0 : _a.value).toBe(true);
48
+ });
49
+ it('parses readonly modifier independently of the params', async () => {
50
+ var _a;
51
+ const { entry, diags } = await parseEntry(`actor A {
52
+ readonly table<Spell> Locked(sortable: false)
53
+ }`);
54
+ expect(diags).toHaveLength(0);
55
+ const actor = entry.documents.find(isActor);
56
+ const table = actor.body.find(p => isTableField(p) && p.name === 'Locked');
57
+ expect(table.modifier).toBe('readonly');
58
+ expect((_a = table.params.find((p) => isTableSortableParam(p))) === null || _a === void 0 ? void 0 : _a.value).toBe(false);
59
+ });
60
+ });
61
+ //# sourceMappingURL=table-params.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-params.test.js","sourceRoot":"","sources":["../../../src/test/parsing/table-params.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "ISDL - Intelligent System Design Language",
4
4
  "description": "Intelligent System Design Language support for Visual Studio Code",
5
5
  "publisher": "IronMooseDevelopment",
6
- "version": "0.3.25",
6
+ "version": "0.3.26",
7
7
  "author": "Iron Moose Development",
8
8
  "repository": {
9
9
  "type": "git",