Skip to content

Commit

Permalink
使用 jest 测试框架替换 mocha,并增加测试覆盖率的统计、推送到 coveralls
Browse files Browse the repository at this point in the history
  • Loading branch information
IronBlood committed Jan 19, 2021
1 parent 3861785 commit e6a25c7
Show file tree
Hide file tree
Showing 9 changed files with 21 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"root": true,
"env": {
"mocha": true,
"jest": true,
"browser": true,
"es2021": true,
"node": true
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,9 @@ jobs:
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
run: NODE_OPTIONS=--experimental-vm-modules npm run test
- name: Upload coverage report
run: cat coverage/lcov.info | COVERALLS_REPO_TOKEN=$TOKEN node_modules/coveralls/bin/coveralls.js
env:
TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules/
coverage/

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# bmybbs-content-parser

![BMYBBS Content Parser CI](https://github.com/bmybbs/bmybbs-content-parser/workflows/BMYBBS%20Content%20Parser%20CI/badge.svg?branch=main) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=bugs)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=code_smells)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=coverage)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser)
![BMYBBS Content Parser CI](https://github.com/bmybbs/bmybbs-content-parser/workflows/BMYBBS%20Content%20Parser%20CI/badge.svg?branch=main) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=bugs)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=code_smells)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser) [![Coverage Status](https://coveralls.io/repos/github/bmybbs/bmybbs-content-parser/badge.svg?branch=main)](https://coveralls.io/github/bmybbs/bmybbs-content-parser?branch=main) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=bmybbs_bmybbs-content-parser&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=bmybbs_bmybbs-content-parser)

这是一个将 [BMYBBS](https://github.com/bmybbs/bmybbs) 文章内容转换为 HTML 的库。

Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"pretest": "eslint --ignore-path .gitignore .",
"test": "mocha"
"test": "jest --coverage --roots=test/"
},
"repository": {
"type": "git",
Expand All @@ -19,8 +19,9 @@
},
"homepage": "https://github.com/bmybbs/bmybbs-content-parser",
"devDependencies": {
"coveralls": "^3.1.0",
"eslint": "^7.18.0",
"mocha": "^8.2.1"
"jest": "^26.6.3"
},
"dependencies": {
"file-type": "^16.1.0"
Expand Down
5 changes: 2 additions & 3 deletions test/00-utils.test.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import assert from "assert"
import {
escapeHtml,
} from "../src/utils.js"

describe("Utils Test", () => {
it("escape html unsafe chars", () => {
test("escape html unsafe chars", () => {
let str = "<>&\"'";
assert.strictEqual(escapeHtml(str), "&lt;&gt;&amp;&quot;&#039;");
expect(escapeHtml(str)).toBe("&lt;&gt;&amp;&quot;&#039;");
});
});

5 changes: 2 additions & 3 deletions test/01-codeblock.test.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import assert from "assert"
import parser from "../src/index.js"

// 以 parser 为入口,针对 code block 单一功能点的测试
describe("Code Block Parser Test", () => {
it("empty code block", async () => {
test("empty code block", async () => {
let content = {
text: "```\n```",
attaches: []
Expand All @@ -13,7 +12,7 @@ describe("Code Block Parser Test", () => {
"</code></pre>",
"</article>"
].join("");
assert.strictEqual(await parser(content), result);
expect(await parser(content)).toBe(result);
});

// TODO
Expand Down
9 changes: 4 additions & 5 deletions test/02-attachParser.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import assert from "assert"
import parser from "../src/index.js"

describe("Attachment Parser Test", () => {
it("mp4 attach", async () => {
test("mp4 attach", async () => {
let content = {
text: "#attach foo.mp4",
attaches: [{
Expand All @@ -16,10 +15,10 @@ describe("Attachment Parser Test", () => {
"</article>",
].join("");

assert.strictEqual(await parser(content), result);
expect(await parser(content)).toBe(result);
});

it("no attach", async () => {
test("no attach", async () => {
let content = {
text: "#attach foo.mp4",
attaches: []
Expand All @@ -29,7 +28,7 @@ describe("Attachment Parser Test", () => {
"</article>",
].join("");

assert.strictEqual(await parser(content), result);
expect(await parser(content)).toBe(result);
});
});

5 changes: 2 additions & 3 deletions test/index.test.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import assert from "assert"
import parser from "../src/index.js"

describe("BMYBBS Content Parser Test", () => {
it("Null content should return empty <article />", async () => {
assert.strictEqual(await parser(null), "<article></article>");
test("Null content should return empty <article />", async () => {
expect(await parser(null)).toBe("<article></article>");
});
});

0 comments on commit e6a25c7

Please sign in to comment.