UNPKG

13.4 kBJavaScriptView Raw
1"use strict";
2
3module.exports = function (t, a) {
4 var x, y;
5
6 a(t("test"), "test", "Plain");
7 a(t("test", "foo", 3, { toString: function () { return "bar"; } }),
8 "test foo 3 bar", "Plain: Many args");
9
10 a(t.red("foo"), "\x1b[31mfoo\x1b[39m", "Foreground");
11 a(t.red("foo", "bar", 3), "\x1b[31mfoo bar 3\x1b[39m",
12 "Foreground: Many args");
13 a(t.red.yellow("foo", "bar", 3), "\x1b[33mfoo bar 3\x1b[39m",
14 "Foreground: Overriden");
15 a(t.bgRed("foo", "bar"), "\x1b[41mfoo bar\x1b[49m", "Background");
16 a(t.bgRed.bgYellow("foo", "bar", 3), "\x1b[43mfoo bar 3\x1b[49m",
17 "Background: Overriden");
18
19 a(t.blue.bgYellow("foo", "bar"), "\x1b[43m\x1b[34mfoo bar\x1b[39m\x1b[49m",
20 "Foreground & Background");
21 a(t.blue.bgYellow.red.bgMagenta("foo", "bar"),
22 "\x1b[45m\x1b[31mfoo bar\x1b[39m\x1b[49m",
23 "Foreground & Background: Overriden");
24
25 a(t.bold("foo", "bar"), "\x1b[1mfoo bar\x1b[22m", "Format");
26 a(t.blink("foobar"), "\x1b[5mfoobar\x1b[25m", "Format: blink");
27 a(t.bold.blue("foo", "bar", 3), "\x1b[1m\x1b[34mfoo bar 3\x1b[39m\x1b[22m",
28 "Foreground & Format");
29
30 a(t.redBright("foo", "bar"), "\x1b[91mfoo bar\x1b[39m", "Bright");
31 a(t.bgRedBright("foo", 3), "\x1b[101mfoo 3\x1b[49m", "Bright background");
32
33 a(t.blueBright.bgYellowBright.red.bgMagenta("foo", "bar"),
34 "\x1b[45m\x1b[31mfoo bar\x1b[39m\x1b[49m",
35 "Foreground & Background: Bright: Overriden");
36
37 a(t.red.blue("foo"), "\x1b[34mfoo\x1b[39m", "Prioritize the Last Color: Blue");
38 a(t.blue.red("foo"), "\x1b[31mfoo\x1b[39m", "Prioritize the Last Color: Red");
39 a(t.bgRed.bgBlue("foo"), "\x1b[44mfoo\x1b[49m", "Prioritize the Last Background Color: Blue");
40 a(t.bgBlue.bgRed("foo"), "\x1b[41mfoo\x1b[49m", "Prioritize the Last Background Color: Red");
41 a(t.bgRed.red.bgBlue.blue("foo"),
42 "\x1b[44m\x1b[34mfoo\x1b[39m\x1b[49m",
43 "Prioritize the Last Mixed Style: Blue");
44 a(t.bgBlue.blue.bgRed.red("foo"),
45 "\x1b[41m\x1b[31mfoo\x1b[39m\x1b[49m",
46 "Prioritize the Last Mixed Style: Red");
47 a(t.bgRed.blue.bgBlue.red("foo"),
48 "\x1b[44m\x1b[31mfoo\x1b[39m\x1b[49m",
49 "Prioritize the Last Mixed Style: BG Blue and Red");
50 a(t.bgBlue.red.bgRed.blue("foo"),
51 "\x1b[41m\x1b[34mfoo\x1b[39m\x1b[49m",
52 "Prioritize the Last Mixed Style: BG Red and Blue");
53
54 a(t.bold("bold " + t.whiteBright("whiteBright ") + "bold"),
55 "\x1b[1mbold \x1b[97mwhiteBright \x1b[39mbold\x1b[22m",
56 "Nested Format: Bold Type 1");
57 a(t.white("white " + t.bold("bold ") + "white"),
58 "\x1b[37mwhite \x1b[1mbold \x1b[22mwhite\x1b[39m",
59 "Nested Format: Bold Type 2");
60
61 a(t.italic("italic " + t.whiteBright("whiteBright ") + "italic"),
62 "\x1b[3mitalic \x1b[97mwhiteBright \x1b[39mitalic\x1b[23m",
63 "Nested Format: Italic");
64 a(t.white("white " + t.italic("italic ") + "white"),
65 "\x1b[37mwhite \x1b[3mitalic \x1b[23mwhite\x1b[39m",
66 "Nested Format: Italic Type 2");
67
68 a(t.underline("underline " + t.whiteBright("whiteBright ") + "underline"),
69 "\x1b[4munderline \x1b[97mwhiteBright \x1b[39munderline\x1b[24m",
70 "Nested Format: Underline");
71 a(t.white("white " + t.underline("underline ") + "white"),
72 "\x1b[37mwhite \x1b[4munderline \x1b[24mwhite\x1b[39m",
73 "Nested Format: Underline Type 2");
74
75 a(t.blink("blink " + t.whiteBright("whiteBright ") + "blink"),
76 "\x1b[5mblink \x1b[97mwhiteBright \x1b[39mblink\x1b[25m",
77 "Nested Format: Blink");
78 a(t.white("white " + t.blink("blink ") + "white"),
79 "\x1b[37mwhite \x1b[5mblink \x1b[25mwhite\x1b[39m",
80 "Nested Format: Blink Type 2");
81
82 a(t.inverse("inverse " + t.whiteBright("whiteBright ") + "inverse"),
83 "\x1b[7minverse \x1b[97mwhiteBright \x1b[39minverse\x1b[27m",
84 "Nested Format: Inverse");
85 a(t.white("white " + t.inverse("inverse ") + "white"),
86 "\x1b[37mwhite \x1b[7minverse \x1b[27mwhite\x1b[39m",
87 "Nested Format: Inverse Type 2");
88
89 a(t.strike("strike " + t.whiteBright("whiteBright ") + "strike"),
90 "\x1b[9mstrike \x1b[97mwhiteBright \x1b[39mstrike\x1b[29m",
91 "Nested Format: Strike");
92 a(t.white("white " + t.strike("strike ") + "white"),
93 "\x1b[37mwhite \x1b[9mstrike \x1b[29mwhite\x1b[39m",
94 "Nested Format: Strike Type 2");
95
96 a(t.red("red " + t.blue("blue ")),
97 "\x1b[31mred \x1b[34mblue \x1b[31m\x1b[39m",
98 "Nested Foreground: Two Levels Type 1");
99 a(t.red(t.blue("blue ") + "red"),
100 "\x1b[31m\x1b[34mblue \x1b[31mred\x1b[39m",
101 "Nested Foreground: Two Levels Type 2");
102 a(t.red("red " + t.blue("blue ") + "red"),
103 "\x1b[31mred \x1b[34mblue \x1b[31mred\x1b[39m",
104 "Nested Foreground: Two Levels Type 3");
105
106 a(t.red("red " + t.blue("blue " + t.green("green ")) + "red"),
107 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[34m\x1b[31mred\x1b[39m",
108 "Nested Foreground: Three Levels Type 1");
109 a(t.red("red " + t.blue("blue " + t.green("green ") + "blue ") + "red"),
110 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[34mblue \x1b[31mred\x1b[39m",
111 "Nested Foreground: Three Levels Type 2");
112 a(t.red("red " + t.blue("blue " + t.green("green ")) + t.green("green ") + "red"),
113 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[34m" +
114 "\x1b[31m\x1b[32mgreen \x1b[31mred\x1b[39m",
115 "Nested Foreground: Three Levels Type 3");
116 a(t.red("red " + t.blue("blue " + t.green("green ") + t.yellow("yellow ")) + "red"),
117 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[34m" +
118 "\x1b[33myellow \x1b[34m\x1b[31mred\x1b[39m",
119 "Nested Foreground: Three Levels Type 4");
120 a(t.red("red " + t.blue("blue " + t.green("green ") + "blue " + t.yellow("yellow ")) + "red"),
121 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[34mblue \x1b[33myellow " +
122 "\x1b[34m\x1b[31mred\x1b[39m", "Nested Foreground: Three Levels Type 5");
123
124 a(t.red("red " + t.blue("blue " + t.green("green " + t.yellow("yellow ") + "green ")) + "red"),
125 "\x1b[31mred \x1b[34mblue \x1b[32mgreen \x1b[33myellow \x1b[32mgreen " +
126 "\x1b[34m\x1b[31mred\x1b[39m", "Nested Foreground: Four Levels");
127
128 a(t.red("\x1bAred"),
129 "\x1b[31m\x1bAred\x1b[39m",
130 "Nested Foreground: Trap Type 1 - Not a Style Before");
131 a(t.red("red\x1bA"),
132 "\x1b[31mred\x1bA\x1b[39m",
133 "Nested Foreground: Trap Type 2 - Not a Style After");
134 a(t.red("\x1bAred\x1bA"),
135 "\x1b[31m\x1bAred\x1bA\x1b[39m",
136 "Nested Foreground: Trap Type 3 - Not a Style Around");
137 a(t.red("\x1b34m\x1b39m"),
138 "\x1b[31m\x1b34m\x1b39m\x1b[39m",
139 "Nested Foreground: Trap Type 4 - Not a Valid Style");
140 a(t.red("\x1b[34m\x1b[39m"),
141 "\x1b[31m\x1b[34m\x1b[31m\x1b[39m",
142 "Nested Foreground: Trap Type 5 - No Message Style");
143 a(t.red("\x1b[34m\x1b[39m\x1b[34mblue\x1b[39m"),
144 "\x1b[31m\x1b[34m\x1b[31m\x1b[34mblue\x1b[31m\x1b[39m",
145 "Nested Foreground: Trap Type 6 - No Message Style Before");
146 a(t.red("\x1b[34mblue\x1b[39m\x1b[34m\x1b[39m"),
147 "\x1b[31m\x1b[34mblue\x1b[31m\x1b[34m\x1b[31m\x1b[39m",
148 "Nested Foreground: Trap Type 7 - No Message Style After");
149 a(t.red("\x1b[34m\x1b[39m\x1b[34mblue\x1b[39m\x1b[34m\x1b[39m"),
150 "\x1b[31m\x1b[34m\x1b[31m\x1b[34mblue\x1b[31m\x1b[34m\x1b[31m\x1b[39m",
151 "Nested Foreground: Trap Type 8 - No Message Style Around");
152
153 a(t.bgRed("red " + t.bgBlue("blue ")),
154 "\x1b[41mred \x1b[44mblue \x1b[41m\x1b[49m",
155 "Nested Background: Two Levels Type 1");
156 a(t.bgRed(t.bgBlue("blue ") + "red"),
157 "\x1b[41m\x1b[44mblue \x1b[41mred\x1b[49m",
158 "Nested Background: Two Levels Type 2");
159 a(t.bgRed("red " + t.bgBlue("blue ") + "red"),
160 "\x1b[41mred \x1b[44mblue \x1b[41mred\x1b[49m",
161 "Nested Background: Two Levels Type 3");
162
163 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green ")) + "red"),
164 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[44m\x1b[41mred\x1b[49m",
165 "Nested Background: Three Levels Type 1");
166 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green ") + "blue ") + "red"),
167 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[44mblue \x1b[41mred\x1b[49m",
168 "Nested Background: Three Levels Type 2");
169 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green ")) + t.bgGreen("green ") + "red"),
170 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[44m" +
171 "\x1b[41m\x1b[42mgreen \x1b[41mred\x1b[49m",
172 "Nested Background: Three Levels Type 3");
173 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green ") + t.bgYellow("yellow ")) + "red"),
174 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[44m" +
175 "\x1b[43myellow \x1b[44m\x1b[41mred\x1b[49m",
176 "Nested Background: Three Levels Type 4");
177 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green ") + "blue " +
178 t.bgYellow("yellow ")) + "red"),
179 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[44mblue \x1b[43myellow " +
180 "\x1b[44m\x1b[41mred\x1b[49m", "Nested Background: Three Levels Type 5");
181
182 a(t.bgRed("red " + t.bgBlue("blue " + t.bgGreen("green " +
183 t.bgYellow("yellow ") + "green ")) + "red"),
184 "\x1b[41mred \x1b[44mblue \x1b[42mgreen \x1b[43myellow \x1b[42mgreen " +
185 "\x1b[44m\x1b[41mred\x1b[49m", "Nested Background: Four Levels");
186
187 a(t.bgRed("\x1bAred"),
188 "\x1b[41m\x1bAred\x1b[49m",
189 "Nested Background: Trap Type 1 - Not a Style Before");
190 a(t.bgRed("red\x1bA"),
191 "\x1b[41mred\x1bA\x1b[49m",
192 "Nested Background: Trap Type 2 - Not a Style After");
193 a(t.bgRed("\x1bAred\x1bA"),
194 "\x1b[41m\x1bAred\x1bA\x1b[49m",
195 "Nested Background: Trap Type 3 - Not a Style Around");
196 a(t.bgRed("\x1b44m\x1b39m"),
197 "\x1b[41m\x1b44m\x1b39m\x1b[49m",
198 "Nested Background: Trap Type 4 - Not a Valid Style");
199 a(t.bgRed("\x1b[44m\x1b[49m"),
200 "\x1b[41m\x1b[44m\x1b[41m\x1b[49m",
201 "Nested Background: Trap Type 5 - No Message Style");
202 a(t.bgRed("\x1b[44m\x1b[49m\x1b[44mblue\x1b[49m"),
203 "\x1b[41m\x1b[44m\x1b[41m\x1b[44mblue\x1b[41m\x1b[49m",
204 "Nested Background: Trap Type 6 - No Message Style Before");
205 a(t.bgRed("\x1b[44mblue\x1b[49m\x1b[44m\x1b[49m"),
206 "\x1b[41m\x1b[44mblue\x1b[41m\x1b[44m\x1b[41m\x1b[49m",
207 "Nested Background: Trap Type 7 - No Message Style After");
208 a(t.bgRed("\x1b[44m\x1b[49m\x1b[44mblue\x1b[49m\x1b[44m\x1b[49m"),
209 "\x1b[41m\x1b[44m\x1b[41m\x1b[44mblue\x1b[41m\x1b[44m\x1b[41m\x1b[49m",
210 "Nested Background: Trap Type 8 - No Message Style Around");
211
212 a(t.red("red " + t.bgBlue("blue ")),
213 "\x1b[31mred \x1b[44mblue \x1b[49m\x1b[39m",
214 "Nested Foreground and Background: Two Levels Type 1");
215 a(t.red("red " + t.bgBlue("blue ") + t.white("white")),
216 "\x1b[31mred \x1b[44mblue \x1b[49m\x1b[37mwhite\x1b[31m\x1b[39m",
217 "Nested Foreground and Background: Two Levels Type 2");
218 a(t.red("red " + t.bgBlue("blue ") + "red"),
219 "\x1b[31mred \x1b[44mblue \x1b[49mred\x1b[39m",
220 "Nested Foreground and Background: Two Levels Type 3");
221 a(t.bgBlue("blue " + t.bgRed("red " + t.whiteBright("white ") + "red ") + "blue"),
222 "\x1b[44mblue \x1b[41mred \x1b[97mwhite \x1b[39mred \x1b[44mblue\x1b[49m",
223 "Nested Foreground and Background: Two Levels Type 3");
224
225 a(t.red.bgWhite("white " + t.bgBlue("blue")),
226 "\x1b[47m\x1b[31mwhite \x1b[44mblue\x1b[47m\x1b[39m\x1b[49m",
227 "Nested Foreground and Background: Mixed Type 1");
228 a(t.red.bgWhite("white " + t.blue("blue")),
229 "\x1b[47m\x1b[31mwhite \x1b[34mblue\x1b[31m\x1b[39m\x1b[49m",
230 "Nested Foreground and Background: Mixed Type 2");
231 a(t.red.bgWhite("white " + t.blue("blue ") + "white"),
232 "\x1b[47m\x1b[31mwhite \x1b[34mblue \x1b[31mwhite\x1b[39m\x1b[49m",
233 "Nested Foreground and Background: Mixed Type 3");
234
235 a(t.red.bgWhite("\x1bAred"),
236 "\x1b[47m\x1b[31m\x1bAred\x1b[39m\x1b[49m",
237 "Nested Foreground and Background: Trap Type 1 - Not a Style Before");
238 a(t.red.bgWhite("red\x1bA"),
239 "\x1b[47m\x1b[31mred\x1bA\x1b[39m\x1b[49m",
240 "Nested Foreground and Background: Trap Type 2 - Not a Style After");
241 a(t.red.bgWhite("\x1bAred\x1bA"),
242 "\x1b[47m\x1b[31m\x1bAred\x1bA\x1b[39m\x1b[49m",
243 "Nested Foreground and Background: Trap Type 3 - Not a Style Around");
244 a(t.red.bgWhite("\x1b34m\x1b39m"),
245 "\x1b[47m\x1b[31m\x1b34m\x1b39m\x1b[39m\x1b[49m",
246 "Nested Foreground and Background: Trap Type 4 - Not a Valid Style");
247 a(t.red.bgWhite("\x1b[34m\x1b[39m"),
248 "\x1b[47m\x1b[31m\x1b[34m\x1b[31m\x1b[39m\x1b[49m",
249 "Nested Foreground and Background: Trap Type 5 - No Message Style");
250 a(t.red.bgWhite("\x1b[44m\x1b[49m"),
251 "\x1b[47m\x1b[31m\x1b[44m\x1b[47m\x1b[39m\x1b[49m",
252 "Nested Foreground and Background: Trap Type 6 - No Message Style");
253 a(t.red.bgWhite("\x1b[44m\x1b[49m\x1b[44mblue\x1b[49m"),
254 "\x1b[47m\x1b[31m\x1b[44m\x1b[47m\x1b[44mblue\x1b[47m\x1b[39m\x1b[49m",
255 "Nested Foreground and Background: Trap Type 7 - No Message Style Before");
256 a(t.red.bgWhite("\x1b[44mblue\x1b[49m\x1b[44m\x1b[49m"),
257 "\x1b[47m\x1b[31m\x1b[44mblue\x1b[47m\x1b[44m\x1b[47m\x1b[39m\x1b[49m",
258 "Nested Foreground and Background: Trap Type 8 - No Message Style After");
259 a(t.red.bgWhite("\x1b[44m\x1b[49m\x1b[44mblue\x1b[49m\x1b[44m\x1b[49m"),
260 "\x1b[47m\x1b[31m\x1b[44m\x1b[47m\x1b[44mblue\x1b[47m\x1b[44m\x1b[47m\x1b[39m\x1b[49m",
261 "Nested Foreground and Background: Trap Type 9 - No Message Style Around");
262
263 x = t.red;
264 y = x.bold;
265
266 a(x("foo", "red") + " " + y("foo", "boldred"),
267 "\x1b[31mfoo red\x1b[39m \x1b[1m\x1b[31mfoo boldred\x1b[39m\x1b[22m",
268 "Detached extension");
269
270 if (t.xtermSupported) {
271 a(t.xterm(12).bgXterm(67)("foo", "xterm"),
272 "\x1b[48;5;67m\x1b[38;5;12mfoo xterm\x1b[39m\x1b[49m", "Xterm");
273
274 a(t.redBright.bgBlueBright.xterm(12).bgXterm(67)("foo", "xterm"),
275 "\x1b[48;5;67m\x1b[38;5;12mfoo xterm\x1b[39m\x1b[49m",
276 "Xterm: Override & Bright");
277 a(t.xterm(12).bgXterm(67).redBright.bgMagentaBright("foo", "xterm"),
278 "\x1b[105m\x1b[91mfoo xterm\x1b[39m\x1b[49m",
279 "Xterm: Override & Bright #2");
280 } else {
281 a(t.xterm(12).bgXterm(67)("foo", "xterm"),
282 "\x1b[100m\x1b[94mfoo xterm\x1b[39m\x1b[49m", "Xterm");
283 }
284};