Start test suite
This commit is contained in:
122
test/structuretext.js
Normal file
122
test/structuretext.js
Normal file
@@ -0,0 +1,122 @@
|
||||
const tap = require("tap")
|
||||
const {structure, partsHashtag, partsUsername} = require("../src/lib/utils/structuretext.js")
|
||||
|
||||
// lone test hashtag
|
||||
tap.same(
|
||||
partsHashtag([
|
||||
{type: "user", text: "@person"},
|
||||
{type: "text", text: " #epic"}
|
||||
]),
|
||||
[
|
||||
{type: "user", text: "@person"},
|
||||
{type: "text", text: " "},
|
||||
{type: "hashtag", text: "#epic", hashtag: "epic"},
|
||||
{type: "text", text: ""}
|
||||
]
|
||||
)
|
||||
|
||||
// lone test username
|
||||
tap.same(
|
||||
partsUsername([
|
||||
{type: "hashtag", text: "#drawing", hashtag: "drawing"},
|
||||
{type: "text", text: " with @person"}
|
||||
]),
|
||||
[
|
||||
{type: "hashtag", text: "#drawing", hashtag: "drawing"},
|
||||
{type: "text", text: " with "},
|
||||
{type: "user", text: "@person", user: "person"},
|
||||
{type: "text", text: ""}
|
||||
]
|
||||
)
|
||||
|
||||
// plain text
|
||||
tap.same(
|
||||
structure("hello world"),
|
||||
[
|
||||
{type: "text", text: "hello world"}
|
||||
]
|
||||
)
|
||||
|
||||
// username
|
||||
tap.same(
|
||||
structure("hello @person world"),
|
||||
[
|
||||
{type: "text", text: "hello "},
|
||||
{type: "user", text: "@person", user: "person"},
|
||||
{type: "text", text: " world"}
|
||||
]
|
||||
)
|
||||
|
||||
// username at start
|
||||
tap.same(
|
||||
structure("@person hello"),
|
||||
[
|
||||
{type: "text", text: ""},
|
||||
{type: "user", text: "@person", user: "person"},
|
||||
{type: "text", text: " hello"}
|
||||
]
|
||||
)
|
||||
|
||||
// username at end
|
||||
tap.same(
|
||||
structure("hello @person"),
|
||||
[
|
||||
{type: "text", text: "hello "},
|
||||
{type: "user", text: "@person", user: "person"},
|
||||
{type: "text", text: ""},
|
||||
]
|
||||
)
|
||||
|
||||
// multiple usernames
|
||||
tap.same(
|
||||
structure("hello @person1 @person2"),
|
||||
[
|
||||
{type: "text", text: "hello "},
|
||||
{type: "user", text: "@person1", user: "person1"},
|
||||
{type: "text", text: " "},
|
||||
{type: "user", text: "@person2", user: "person2"},
|
||||
{type: "text", text: ""}
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
// hashtag
|
||||
tap.same(
|
||||
structure("what a #beautiful day"),
|
||||
[
|
||||
{type: "text", text: "what a "},
|
||||
{type: "hashtag", text: "#beautiful", hashtag: "beautiful"},
|
||||
{type: "text", text: " day"}
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
// mixed
|
||||
tap.same(
|
||||
structure("@person what a #beautiful #day in @city"),
|
||||
[
|
||||
{type: "text", text: ""},
|
||||
{type: "user", text: "@person", user: "person"},
|
||||
{type: "text", text: " what a "},
|
||||
{type: "hashtag", text: "#beautiful", hashtag: "beautiful"},
|
||||
{type: "text", text: " "},
|
||||
{type: "hashtag", text: "#day", hashtag: "day"},
|
||||
{type: "text", text: " in "},
|
||||
{type: "user", text: "@city", user: "city"},
|
||||
{type: "text", text: ""}
|
||||
]
|
||||
)
|
||||
|
||||
// special characters
|
||||
tap.same(
|
||||
structure("#goodmorning! @city.planner, #parks\nare awesome"),
|
||||
[
|
||||
{type: "text", text: ""},
|
||||
{type: "hashtag", text: "#goodmorning", hashtag: "goodmorning"},
|
||||
{type: "text", text: "! "},
|
||||
{type: "user", text: "@city.planner", user: "city.planner"},
|
||||
{type: "text", text: ", "},
|
||||
{type: "hashtag", text: "#parks", hashtag: "parks"},
|
||||
{type: "text", text: "\nare awesome"}
|
||||
]
|
||||
)
|
||||
Reference in New Issue
Block a user