Skip to content

Commit 2f40a7e

Browse files
committed
Tests
1 parent c9ab1b7 commit 2f40a7e

12 files changed

+818
-48
lines changed

package-lock.json

+727
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "src/iecst.js",
66
"scripts": {
77
"postpublish": "PACKAGE_VERSION=$(cat package.json | grep \\\"version\\\" | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]') && git tag v$PACKAGE_VERSION && git push --tags",
8-
"test": "jasmine"
8+
"test": "./node_modules/.bin/mocha --reporter spec"
99
},
1010
"files": [
1111
"src/iecst.js",
@@ -35,5 +35,11 @@
3535
"devDependencies": {
3636
"highlight.js": "^10.4.1",
3737
"jasmine": "^3.5.0"
38+
},
39+
"dependencies": {
40+
"highlightjs": "^9.16.2",
41+
"mocha": "^8.3.2",
42+
"should": "^13.2.3",
43+
"user": "0.0.0"
3844
}
3945
}

spec/iecst-spec.js

-28
This file was deleted.

spec/support/jasmine.json

-11
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
CONFIGURATION DefaultCfg
2-
VAR_GLOBAL
3-
Start_Stop AT %IX0.0: BOOL; (* This is comment *)
4-
END_VAR
1+
CONFIGURATION DefaultCfg
2+
VAR_GLOBAL
3+
Start_Stop AT %IX0.0: BOOL; (* This is comment *)
4+
END_VAR
55
END_CONFIGURATION

test/index.js

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
var should = require('should');
2+
var promisify = require("util").promisify;
3+
let path = require('path');
4+
5+
let hljs = require("highlightjs");
6+
let iecst = require("../src/iecst");
7+
hljs.registerLanguage("iecst", iecst);
8+
9+
const fs = require("fs");
10+
11+
const readdir = promisify(fs.readdir),
12+
readFile = promisify(fs.readFile);
13+
14+
describe("IEC 61131-3 ST Tests", () => {
15+
it("Test markup", async () => {
16+
var files = await readdir(path.join(__dirname, "markup"));
17+
files = files.filter(f => !f.includes(".expect."));
18+
for (var f of files) {
19+
let fn = path.join(__dirname, "markup", f);
20+
let expectFn = fn.replace(".txt", ".expect.txt");
21+
var code = await readFile(fn, "utf-8");
22+
var exp = await readFile(expectFn, "utf-8");
23+
var actual = hljs.highlight("iecst", code).value;
24+
actual.trim().should.eql(exp.trim(), f);
25+
}
26+
});
27+
28+
it("should be detected correctly", async () => {
29+
var code = await readFile(path.join(__dirname, "detect/detect.txt"), "utf-8");
30+
var actual = hljs.highlightAuto(code,['iecst']).language;
31+
actual.should.eql("iecst");
32+
});
33+
});
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<span class="hljs-title">CONFIGURATION</span> DefaultCfg
2-
<span class="hljs-title">VAR_GLOBAL</span>
3-
Start_Stop <span class="hljs-keyword">AT</span> <span class="hljs-symbol">%IX0.0</span>: <span class="hljs-built_in">BOOL</span>; <span class="hljs-comment">(* This is comment *)</span>
4-
<span class="hljs-title">END_VAR</span>
1+
<span class="hljs-title">CONFIGURATION</span> DefaultCfg
2+
<span class="hljs-title">VAR_GLOBAL</span>
3+
Start_Stop <span class="hljs-keyword">AT</span> <span class="hljs-symbol">%IX0.0</span>: <span class="hljs-built_in">BOOL</span>; <span class="hljs-comment">(* This is comment *)</span>
4+
<span class="hljs-title">END_VAR</span>
55
<span class="hljs-title">END_CONFIGURATION</span>

test/markup/sample.txt

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CONFIGURATION DefaultCfg
2+
VAR_GLOBAL
3+
Start_Stop AT %IX0.0: BOOL; (* This is comment *)
4+
END_VAR
5+
END_CONFIGURATION

test/markup/sample2.expect.txt

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<span class="hljs-title">TYPE</span> StructName : <span class="hljs-title">STRUCT</span>
2+
xStart : <span class="hljs-built_in">BOOL</span>; <span class="hljs-comment">(* Start *)</span>
3+
xStop : <span class="hljs-built_in">BOOL</span>; <span class="hljs-comment">(* Stop *)</span>
4+
<span class="hljs-title">END_STRUCT</span>
5+
<span class="hljs-title">END_TYPE</span>

test/markup/sample2.txt

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
TYPE StructName : STRUCT
2+
xStart : BOOL; (* Start *)
3+
xStop : BOOL; (* Stop *)
4+
END_STRUCT
5+
END_TYPE

test/markup/sample3.expect.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<span class="hljs-title">PROGRAM</span> demo
2+
<span class="hljs-title">VAR_EXTERNAL</span>
3+
Start_Stop: <span class="hljs-built_in">BOOL</span>;
4+
<span class="hljs-title">END_VAR</span>
5+
<span class="hljs-title">VAR</span>
6+
a : <span class="hljs-built_in">REAL</span>; <span class="hljs-comment">// Another comment</span>
7+
todTest: <span class="hljs-built_in">TIME_OF_DAY</span> := <span class="hljs-symbol">TOD#12:55</span>;
8+
<span class="hljs-title">END_VAR</span>
9+
a := csq(<span class="hljs-number">12.5</span>) + <span class="hljs-number">16#</span>FAC0;
10+
<span class="hljs-keyword">IF</span> a &gt; <span class="hljs-symbol">REAL#</span><span class="hljs-number">100</span> <span class="hljs-keyword">THEN</span>
11+
Start_Stop := <span class="hljs-literal">TRUE</span>;
12+
TON1(IN := <span class="hljs-literal">TRUE</span>, PT := <span class="hljs-symbol">T#1S</span>);
13+
<span class="hljs-keyword">END_IF</span>
14+
<span class="hljs-title">END_PROGRAM</span>

test/markup/sample3.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
PROGRAM demo
2+
VAR_EXTERNAL
3+
Start_Stop: BOOL;
4+
END_VAR
5+
VAR
6+
a : REAL; // Another comment
7+
todTest: TIME_OF_DAY := TOD#12:55;
8+
END_VAR
9+
a := csq(12.5) + 16#FAC0;
10+
IF a > REAL#100 THEN
11+
Start_Stop := TRUE;
12+
TON1(IN := TRUE, PT := T#1S);
13+
END_IF
14+
END_PROGRAM

0 commit comments

Comments
 (0)