Skip to content

Commit df3b8ea

Browse files
mocha
1 parent 05de86a commit df3b8ea

File tree

10 files changed

+1469
-4598
lines changed

10 files changed

+1469
-4598
lines changed

package-lock.json

Lines changed: 872 additions & 3979 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"version": "1.0.3",
44
"main": "index.js",
55
"scripts": {
6-
"test": "nodeunit-esm -r",
6+
"test": "mocha test/**",
77
"generate-docs": "jsdoc --configure .jsdoc.json --verbose"
88
},
99
"devDependencies": {
1010
"docdash": "^1.2.0",
1111
"eslint": "^7.0.0",
1212
"jsdoc": "^3.6.6",
13-
"nodeunit-esm": "^1.0.2"
13+
"mocha": "^9.1.1"
1414
},
1515
"description": "Tiny BBCode JavaScript implementation",
1616
"repository": {

test/bbdocument/bbdocument.test.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
1+
import assert from "assert"
12
import { BBDocument } from "../../index.js"
23

34
const bbDocument = new BBDocument()
45

5-
export function createElement(test) {
6-
test.expect(1)
7-
const bbElement = bbDocument.createElement("b")
8-
test.strictEqual(bbElement.tagName, "b")
9-
test.done()
10-
}
11-
12-
export function createTextNode(test) {
13-
test.expect(1)
14-
const bbText = bbDocument.createTextNode("Hello world")
15-
test.strictEqual(bbText.textContent, "Hello world")
16-
test.done()
17-
}
6+
describe("bbdocument", () => {
7+
8+
it("createElement", () => {
9+
10+
const bbElement = bbDocument.createElement("b")
11+
assert.strictEqual(bbElement.tagName, "b")
12+
13+
})
14+
15+
it("createTextNode", () => {
16+
17+
const bbText = bbDocument.createTextNode("Hello world")
18+
assert.strictEqual(bbText.textContent, "Hello world")
19+
20+
})
21+
22+
})

test/bbdocument/bbelement.test.js

Lines changed: 153 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -1,168 +1,157 @@
1+
import assert from "assert"
12
import { BBDocument, BBNode } from "../../index.js"
23

34
const bbDocument = new BBDocument()
45

5-
export function appendChild(test) {
6-
test.expect(15)
7-
8-
const bbElement = bbDocument.createElement("quote")
9-
const bbText = bbDocument.createTextNode("Hello World")
10-
const bbElement3 = bbDocument.createElement("b")
11-
const bbElement4 = bbDocument.createElement("i")
12-
13-
bbElement.appendChild(bbText)
14-
bbElement.appendChild(bbElement3)
15-
bbElement3.appendChild(bbElement4)
16-
17-
test.strictEqual(bbElement.tagName, "quote")
18-
19-
test.strictEqual(bbElement.childNodes[0].nodeType, BBNode.TEXT_BBNODE)
20-
test.strictEqual(bbElement.childNodes[0].parentNode, bbElement)
21-
test.strictEqual(bbElement.childNodes[0].previousSibling, null)
22-
test.strictEqual(bbElement.childNodes[0].nextSibling, bbElement.childNodes[1])
23-
test.strictEqual(bbElement.childNodes[0].textContent, "Hello World")
24-
25-
test.strictEqual(bbElement.childNodes[1].tagName, "b")
26-
test.strictEqual(bbElement.childNodes[1].parentNode, bbElement)
27-
test.strictEqual(bbElement.childNodes[1].previousSibling, bbElement.childNodes[0])
28-
test.strictEqual(bbElement.childNodes[1].nextSibling, null)
29-
test.strictEqual(bbElement.childNodes[1].nodeType, BBNode.ELEMENT_BBNODE)
30-
31-
test.strictEqual(bbElement.childNodes[1].childNodes[0].tagName, "i")
32-
test.strictEqual(bbElement.childNodes[1].childNodes[0].parentNode, bbElement.childNodes[1])
33-
test.strictEqual(bbElement.childNodes[1].childNodes[0].previousSibling, null)
34-
test.strictEqual(bbElement.childNodes[1].childNodes[0].nextSibling, null)
35-
36-
test.done()
37-
}
38-
39-
export function removeChild(test) {
40-
test.expect(8)
41-
42-
const bbElement = bbDocument.createElement("quote")
43-
const bbElement1 = bbDocument.createElement("s")
44-
const bbText = bbDocument.createTextNode("Hello World")
45-
const bbElement2 = bbDocument.createElement("i")
46-
const bbElement3 = bbDocument.createElement("d")
47-
bbElement.appendChild(bbElement1)
48-
bbElement.appendChild(bbText)
49-
test.ok(bbText.nextSibling === null)
50-
bbElement.appendChild(bbElement2)
51-
test.strictEqual(bbText.nextSibling.outerBBCode, bbElement2.outerBBCode)
52-
bbElement.appendChild(bbElement3)
53-
test.strictEqual(bbText.nextSibling.outerBBCode, bbElement2.outerBBCode)
54-
bbElement.removeChild(bbElement2)
55-
test.strictEqual(bbText.nextSibling.outerBBCode, bbElement3.outerBBCode)
56-
57-
test.strictEqual(bbText.nextSibling.outerBBCode, bbElement3.outerBBCode)
58-
test.strictEqual(bbElement3.previousSibling.outerBBCode, bbText.outerBBCode)
59-
test.strictEqual(bbText.previousSibling.outerBBCode, bbElement1.outerBBCode)
60-
test.strictEqual(bbText.parentNode.childNodes[bbText.parentNode.childNodes.length - 1].outerBBCode, bbElement3.outerBBCode)
61-
62-
bbElement.removeChild(bbText)
63-
bbElement.removeChild(bbElement2)
64-
65-
test.done()
66-
}
67-
68-
export function textContent(test) {
69-
test.expect(4)
70-
71-
const bbElement = bbDocument.createElement("quote")
72-
const bbText = bbDocument.createTextNode("Hello World")
73-
const bbElement3 = bbDocument.createElement("b")
74-
const bbElement4 = bbDocument.createElement("i")
75-
bbElement.appendChild(bbText)
76-
bbElement.appendChild(bbElement3)
77-
bbElement3.appendChild(bbElement4)
78-
test.strictEqual(bbElement.textContent, "Hello World")
79-
bbElement3.textContent = "Foo"
80-
test.strictEqual(bbElement.textContent, "Hello WorldFoo")
81-
bbElement.textContent = "Hello World"
82-
test.strictEqual(bbElement.childNodes.length, 1)
83-
test.strictEqual(bbElement.childNodes[0].nodeType, BBNode.TEXT_BBNODE)
84-
85-
test.done()
86-
}
87-
88-
export function innerBBCode(test) {
89-
test.expect(9)
90-
91-
const bbElement = bbDocument.createElement("s")
92-
const bbText = bbDocument.createTextNode("Hello World")
93-
const bbElement3 = bbDocument.createElement("b")
94-
const bbElement4 = bbDocument.createElement("i")
95-
bbElement.appendChild(bbText)
96-
bbElement.appendChild(bbElement3)
97-
bbElement3.appendChild(bbElement4)
98-
test.strictEqual(bbElement.innerBBCode, "Hello World[b][i][/i][/b]")
99-
bbElement.innerBBCode = "[quote=hello xzc=test]test[/quote]"
100-
test.strictEqual(bbElement.childNodes.length, 1)
101-
test.strictEqual(bbElement.childNodes[0].nodeType, BBNode.ELEMENT_BBNODE)
102-
test.strictEqual(bbElement.childNodes[0].keys.size, 2)
103-
test.strictEqual(bbElement.childNodes[0].keys.get("quote"), "hello")
104-
test.ok(bbElement.childNodes[0].keys.has("xzc"))
105-
test.strictEqual(bbElement.childNodes[0].keys.get("xzc"), "test")
106-
test.strictEqual(bbElement.childNodes[0].childNodes.length, 1)
107-
test.strictEqual(bbElement.childNodes[0].childNodes[0].nodeType, BBNode.TEXT_BBNODE)
108-
109-
test.done()
110-
}
111-
112-
export function outerBBCode(test) {
113-
test.expect(1)
114-
const bbElement = bbDocument.createElement("quote")
115-
const bbText = bbDocument.createTextNode("Hello World")
116-
const bbElement3 = bbDocument.createElement("b")
117-
const bbElement4 = bbDocument.createElement("i")
118-
// [quote]Hello World[b][i][/i][/b][/quote]
119-
bbElement.appendChild(bbText)
120-
bbElement.appendChild(bbElement3)
121-
bbElement3.appendChild(bbElement4)
122-
test.strictEqual(bbElement.outerBBCode, "[quote]Hello World[b][i][/i][/b][/quote]")
123-
124-
test.done()
125-
}
126-
127-
export function tags(test) {
128-
test.expect(5)
129-
130-
const bbElement = bbDocument.createElement("color", "#ffffff")
131-
132-
const tags = bbElement.tags()
133-
134-
test.strictEqual(Object.keys(tags).length, 2)
135-
test.ok(Object.hasOwnProperty.call(tags, "opening"))
136-
test.ok(Object.hasOwnProperty.call(tags, "closing"))
137-
test.strictEqual(tags.opening, "[color=#ffffff]")
138-
test.strictEqual(tags.closing, "[/color]")
139-
140-
test.done()
141-
}
142-
143-
export function querySelector(test) {
144-
test.expect(4)
145-
146-
const bbElement = bbDocument.createElement("test")
147-
bbElement.innerBBCode = "[v][t][/t][/v]"
148-
149-
test.strictEqual(bbElement.querySelector(""), null)
150-
test.strictEqual(bbElement.querySelector("cxzcxz"), null)
151-
test.strictEqual(bbElement.querySelector("v").tagName, "v")
152-
test.strictEqual(bbElement.querySelector("t").tagName, "t")
153-
154-
test.done()
155-
}
156-
157-
export function querySelectorAll(test) {
158-
test.expect(3)
159-
160-
const bbElement = bbDocument.createElement("test")
161-
bbElement.innerBBCode = "[v][t][t][v][t][/t][/v][/t][/t][/v]"
162-
163-
test.strictEqual(bbElement.querySelectorAll("").length, 0)
164-
test.strictEqual(bbElement.querySelectorAll("vvcxv").length, 0)
165-
test.strictEqual(bbElement.querySelectorAll("t").length, 3)
166-
167-
test.done()
168-
}
6+
describe("bbelement", () => {
7+
8+
it("appendChild", () => {
9+
10+
const bbElement = bbDocument.createElement("quote")
11+
const bbText = bbDocument.createTextNode("Hello World")
12+
const bbElement3 = bbDocument.createElement("b")
13+
const bbElement4 = bbDocument.createElement("i")
14+
15+
bbElement.appendChild(bbText)
16+
bbElement.appendChild(bbElement3)
17+
bbElement3.appendChild(bbElement4)
18+
19+
assert.strictEqual(bbElement.tagName, "quote")
20+
21+
assert.strictEqual(bbElement.childNodes[0].nodeType, BBNode.TEXT_BBNODE)
22+
assert.strictEqual(bbElement.childNodes[0].parentNode, bbElement)
23+
assert.strictEqual(bbElement.childNodes[0].previousSibling, null)
24+
assert.strictEqual(bbElement.childNodes[0].nextSibling, bbElement.childNodes[1])
25+
assert.strictEqual(bbElement.childNodes[0].textContent, "Hello World")
26+
27+
assert.strictEqual(bbElement.childNodes[1].tagName, "b")
28+
assert.strictEqual(bbElement.childNodes[1].parentNode, bbElement)
29+
assert.strictEqual(bbElement.childNodes[1].previousSibling, bbElement.childNodes[0])
30+
assert.strictEqual(bbElement.childNodes[1].nextSibling, null)
31+
assert.strictEqual(bbElement.childNodes[1].nodeType, BBNode.ELEMENT_BBNODE)
32+
33+
assert.strictEqual(bbElement.childNodes[1].childNodes[0].tagName, "i")
34+
assert.strictEqual(bbElement.childNodes[1].childNodes[0].parentNode, bbElement.childNodes[1])
35+
assert.strictEqual(bbElement.childNodes[1].childNodes[0].previousSibling, null)
36+
assert.strictEqual(bbElement.childNodes[1].childNodes[0].nextSibling, null)
37+
38+
})
39+
40+
it("removeChild", () => {
41+
42+
const bbElement = bbDocument.createElement("quote")
43+
const bbElement1 = bbDocument.createElement("s")
44+
const bbText = bbDocument.createTextNode("Hello World")
45+
const bbElement2 = bbDocument.createElement("i")
46+
const bbElement3 = bbDocument.createElement("d")
47+
bbElement.appendChild(bbElement1)
48+
bbElement.appendChild(bbText)
49+
assert.ok(bbText.nextSibling === null)
50+
bbElement.appendChild(bbElement2)
51+
assert.strictEqual(bbText.nextSibling.outerBBCode, bbElement2.outerBBCode)
52+
bbElement.appendChild(bbElement3)
53+
assert.strictEqual(bbText.nextSibling.outerBBCode, bbElement2.outerBBCode)
54+
bbElement.removeChild(bbElement2)
55+
assert.strictEqual(bbText.nextSibling.outerBBCode, bbElement3.outerBBCode)
56+
57+
assert.strictEqual(bbText.nextSibling.outerBBCode, bbElement3.outerBBCode)
58+
assert.strictEqual(bbElement3.previousSibling.outerBBCode, bbText.outerBBCode)
59+
assert.strictEqual(bbText.previousSibling.outerBBCode, bbElement1.outerBBCode)
60+
assert.strictEqual(bbText.parentNode.childNodes[bbText.parentNode.childNodes.length - 1].outerBBCode, bbElement3.outerBBCode)
61+
62+
bbElement.removeChild(bbText)
63+
bbElement.removeChild(bbElement2)
64+
65+
})
66+
67+
it("textContent", () => {
68+
69+
const bbElement = bbDocument.createElement("quote")
70+
const bbText = bbDocument.createTextNode("Hello World")
71+
const bbElement3 = bbDocument.createElement("b")
72+
const bbElement4 = bbDocument.createElement("i")
73+
bbElement.appendChild(bbText)
74+
bbElement.appendChild(bbElement3)
75+
bbElement3.appendChild(bbElement4)
76+
assert.strictEqual(bbElement.textContent, "Hello World")
77+
bbElement3.textContent = "Foo"
78+
assert.strictEqual(bbElement.textContent, "Hello WorldFoo")
79+
bbElement.textContent = "Hello World"
80+
assert.strictEqual(bbElement.childNodes.length, 1)
81+
assert.strictEqual(bbElement.childNodes[0].nodeType, BBNode.TEXT_BBNODE)
82+
83+
})
84+
85+
it("innerBBCode", () => {
86+
87+
const bbElement = bbDocument.createElement("s")
88+
const bbText = bbDocument.createTextNode("Hello World")
89+
const bbElement3 = bbDocument.createElement("b")
90+
const bbElement4 = bbDocument.createElement("i")
91+
bbElement.appendChild(bbText)
92+
bbElement.appendChild(bbElement3)
93+
bbElement3.appendChild(bbElement4)
94+
assert.strictEqual(bbElement.innerBBCode, "Hello World[b][i][/i][/b]")
95+
bbElement.innerBBCode = "[quote=hello xzc=test]test[/quote]"
96+
assert.strictEqual(bbElement.childNodes.length, 1)
97+
assert.strictEqual(bbElement.childNodes[0].nodeType, BBNode.ELEMENT_BBNODE)
98+
assert.strictEqual(bbElement.childNodes[0].keys.size, 2)
99+
assert.strictEqual(bbElement.childNodes[0].keys.get("quote"), "hello")
100+
assert.ok(bbElement.childNodes[0].keys.has("xzc"))
101+
assert.strictEqual(bbElement.childNodes[0].keys.get("xzc"), "test")
102+
assert.strictEqual(bbElement.childNodes[0].childNodes.length, 1)
103+
assert.strictEqual(bbElement.childNodes[0].childNodes[0].nodeType, BBNode.TEXT_BBNODE)
104+
105+
})
106+
107+
it("outerBBCode", () => {
108+
const bbElement = bbDocument.createElement("quote")
109+
const bbText = bbDocument.createTextNode("Hello World")
110+
const bbElement3 = bbDocument.createElement("b")
111+
const bbElement4 = bbDocument.createElement("i")
112+
// [quote]Hello World[b][i][/i][/b][/quote]
113+
bbElement.appendChild(bbText)
114+
bbElement.appendChild(bbElement3)
115+
bbElement3.appendChild(bbElement4)
116+
assert.strictEqual(bbElement.outerBBCode, "[quote]Hello World[b][i][/i][/b][/quote]")
117+
118+
})
119+
120+
it("tags", () => {
121+
122+
const bbElement = bbDocument.createElement("color", "#ffffff")
123+
124+
const tags = bbElement.tags()
125+
126+
assert.strictEqual(Object.keys(tags).length, 2)
127+
assert.ok(Object.hasOwnProperty.call(tags, "opening"))
128+
assert.ok(Object.hasOwnProperty.call(tags, "closing"))
129+
assert.strictEqual(tags.opening, "[color=#ffffff]")
130+
assert.strictEqual(tags.closing, "[/color]")
131+
132+
})
133+
134+
it("querySelector", () => {
135+
136+
const bbElement = bbDocument.createElement("test")
137+
bbElement.innerBBCode = "[v][t][/t][/v]"
138+
139+
assert.strictEqual(bbElement.querySelector(""), null)
140+
assert.strictEqual(bbElement.querySelector("cxzcxz"), null)
141+
assert.strictEqual(bbElement.querySelector("v").tagName, "v")
142+
assert.strictEqual(bbElement.querySelector("t").tagName, "t")
143+
144+
})
145+
146+
it("querySelectorAll", () => {
147+
148+
const bbElement = bbDocument.createElement("test")
149+
bbElement.innerBBCode = "[v][t][t][v][t][/t][/v][/t][/t][/v]"
150+
151+
assert.strictEqual(bbElement.querySelectorAll("").length, 0)
152+
assert.strictEqual(bbElement.querySelectorAll("vvcxv").length, 0)
153+
assert.strictEqual(bbElement.querySelectorAll("t").length, 3)
154+
155+
})
156+
157+
})

0 commit comments

Comments
 (0)