1 | var assert = require("chai").assert;
|
2 | var Args = require("../utils").Args;
|
3 | var Base26Number = require("../utils").Base26Number;
|
4 | var Guid = require("../utils").Guid;
|
5 | var LangUtils = require("../utils").LangUtils;
|
6 | var PathUtils = require("../utils").PathUtils;
|
7 | var RandomUtils = require("../utils").RandomUtils;
|
8 | var TextUtils = require("../utils").TextUtils;
|
9 | var TraceUtils = require("../utils").TraceUtils;
|
10 |
|
11 | describe("test common errors", function () {
|
12 | it("should use Args", function () {
|
13 |
|
14 | assert.doesNotThrow(function () {
|
15 | var a = 5;
|
16 | Args.check(typeof a === "number", "Expected number");
|
17 | });
|
18 |
|
19 | assert.throws(function () {
|
20 | var a = 5;
|
21 | Args.check(typeof a === "string", "Expected string");
|
22 | });
|
23 |
|
24 | assert.doesNotThrow(function () {
|
25 | var a = "test";
|
26 | Args.notString(a, "Argument");
|
27 | });
|
28 |
|
29 | assert.throws(function () {
|
30 | var a = 5;
|
31 | Args.notString(a, "Argument");
|
32 | });
|
33 |
|
34 | assert.doesNotThrow(function () {
|
35 | var a = "test";
|
36 | Args.notEmpty(a, "Argument");
|
37 | });
|
38 |
|
39 | assert.throws(function () {
|
40 | var a = null;
|
41 | Args.notEmpty(a, "Argument");
|
42 | });
|
43 |
|
44 | assert.doesNotThrow(function () {
|
45 | var a = 100;
|
46 | Args.notNegative(a, "Argument");
|
47 | });
|
48 |
|
49 | assert.throws(function () {
|
50 | var a = -100;
|
51 | Args.notNegative(a, "Argument");
|
52 | });
|
53 |
|
54 | assert.doesNotThrow(function () {
|
55 | var a = function a() {
|
56 |
|
57 | };
|
58 | Args.notFunction(a, "Argument");
|
59 | });
|
60 |
|
61 | assert.throws(function () {
|
62 | var a = -100;
|
63 | Args.notFunction(a, "Argument");
|
64 | });
|
65 |
|
66 | assert.doesNotThrow(function () {
|
67 | var a = 100;
|
68 | Args.notNumber(a, "Argument");
|
69 | });
|
70 |
|
71 | assert.throws(function () {
|
72 | var a = "test";
|
73 | Args.notNumber(a, "Argument");
|
74 | });
|
75 |
|
76 | assert.doesNotThrow(function () {
|
77 | var a = new Date();
|
78 | Args.notNull(a, "Argument");
|
79 | });
|
80 |
|
81 | assert.throws(function () {
|
82 | var a = undefined;
|
83 | Args.notNull(a, "Argument");
|
84 | });
|
85 |
|
86 | assert.doesNotThrow(function () {
|
87 | var a = 100;
|
88 | Args.notPositive(a, "Argument");
|
89 | });
|
90 |
|
91 | assert.throws(function () {
|
92 | var a = 0;
|
93 | Args.notPositive(a, "Argument");
|
94 | });
|
95 | });
|
96 |
|
97 | it("should use Base26 numbers", function () {
|
98 | var x = Base26Number.toBase26(100);
|
99 | assert.equal("wdaaaaaa", x);
|
100 | var y = new Base26Number(100);
|
101 | assert.equal(y.toString(), "wdaaaaaa");
|
102 | assert.equal(Base26Number.fromBase26("wdaaaaaa"), 100);
|
103 | });
|
104 |
|
105 | it("should use TextUtils.toMD5", function () {
|
106 | var x = TextUtils.toMD5("Hello");
|
107 | assert.equal(x, "8b1a9953c4611296a827abf8c47804d7");
|
108 | TraceUtils.log("MD5", "Hello", x);
|
109 | });
|
110 |
|
111 | it("should use TextUtils.toSHA1", function () {
|
112 | var x = TextUtils.toSHA1("Hello");
|
113 | assert.equal(x, "f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0");
|
114 | TraceUtils.log("SHA1", "Hello", x);
|
115 | });
|
116 |
|
117 | it("should use TextUtils.toSHA256", function () {
|
118 | var x = TextUtils.toSHA256("Hello");
|
119 | assert.equal(x, "185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969");
|
120 | TraceUtils.log("SHA256", "Hello", x);
|
121 | });
|
122 |
|
123 | it("should use Guid class", function () {
|
124 | var x = new Guid("71BE4D98-3873-4648-9154-C7F79D89E19D");
|
125 | assert.equal(x.toString(), "71BE4D98-3873-4648-9154-C7F79D89E19D");
|
126 | });
|
127 |
|
128 | it("should get random Guids", function () {
|
129 | for (var i = 1; i <= 10; i++) {
|
130 | TraceUtils.log("#" + i, Guid.newGuid().toString());
|
131 | }
|
132 | });
|
133 |
|
134 | it("should use RandomUtils class", function () {
|
135 |
|
136 | var x = RandomUtils.randomChars(12);
|
137 | assert.equal(x.length, 12);
|
138 | TraceUtils.log("Random characters", x);
|
139 | for (var i = 1; i <= 10; i++) {
|
140 | TraceUtils.log("#" + i, RandomUtils.randomChars(12));
|
141 | }
|
142 | var y = RandomUtils.randomInt(0, 10);
|
143 | TraceUtils.log("Random int", y);
|
144 | assert.isOk(y >= 0 && y <= 10, "Invalid random int");
|
145 |
|
146 | var z = RandomUtils.randomHex(6);
|
147 | TraceUtils.log("Random hex", z);
|
148 | for (var _i = 1; _i <= 10; _i++) {
|
149 | TraceUtils.log("#" + _i, RandomUtils.randomHex(6));
|
150 | }
|
151 | assert.isOk(/^[0-9a-fA-F]+$/i.test(z), "Invalid random hex");
|
152 | });
|
153 |
|
154 | it("should use LangUtils.getFunctionParams", function () {
|
155 | var params = LangUtils.getFunctionParams(function (a, b) {
|
156 | return a + b;
|
157 | });
|
158 | assert.equal(params.length, 2);
|
159 | assert.equal(params[0], "a");
|
160 | assert.equal(params[1], "b");
|
161 | });
|
162 |
|
163 | it("should use LangUtils.convert", function () {
|
164 | var x = LangUtils.parseValue("true");
|
165 | assert.isOk(typeof x === "boolean", "Expected boolean");
|
166 | x = LangUtils.parseValue("12.4");
|
167 | assert.isOk(typeof x === "number", "Expected number");
|
168 | x = LangUtils.parseValue("2017-12-22");
|
169 | assert.isOk(x instanceof Date, "Expected date");
|
170 | });
|
171 |
|
172 | it("should use LangUtils.parseForm", function () {
|
173 | var x = LangUtils.parseForm({
|
174 | "user[name]": "user1",
|
175 | "user[password]": "pass",
|
176 | "user[rememberMe]": "true"
|
177 | });
|
178 | assert.isOk(x.hasOwnProperty("user"), "User property is missing");
|
179 | TraceUtils.log("Data", x);
|
180 | });
|
181 |
|
182 | it("should use LangUtils.parseForm with options", function () {
|
183 | var x = LangUtils.parseForm({
|
184 | "user[name]": "user1",
|
185 | "user[password]": "pass",
|
186 | "user[options][rememberMe]": "true"
|
187 | }, {
|
188 | convertValues: true
|
189 | });
|
190 | assert.isOk(x.hasOwnProperty("user"), "User property is missing");
|
191 | assert.isOk(typeof x.user.options.rememberMe === "boolean", "Invalid property value");
|
192 | TraceUtils.log("Data", x);
|
193 | });
|
194 |
|
195 | it("should use PathUtils.join", function () {
|
196 | var joined = PathUtils.join(__dirname, "test-utils.ts");
|
197 | TraceUtils.log(joined);
|
198 | assert.isOk(/test-utils.ts$/.test(joined));
|
199 | });
|
200 |
|
201 | it("should use TraceUtils", function () {
|
202 | TraceUtils.level("debug");
|
203 | TraceUtils.log("GivenName:%s, FamilyName:%s", "Peter", "Thomas");
|
204 | TraceUtils.info("GivenName:%s, FamilyName:%s", "Peter", "Thomas");
|
205 | TraceUtils.warn("GivenName:%s, FamilyName:%s", "Peter", "Thomas");
|
206 | TraceUtils.error("An internal server error occurred!");
|
207 | TraceUtils.level("debug");
|
208 | TraceUtils.debug("Application is running in debug mode");
|
209 | });
|
210 | }); |
\ | No newline at end of file |