Skip to content

Commit 0113cb2

Browse files
committed
fix: normalize url in fixUrl
1 parent cdb8bed commit 0113cb2

15 files changed

Lines changed: 7353 additions & 86 deletions

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@ starkString("345")
8686

8787
### 6) Decode Percent-encoding Characters in URLs
8888

89-
Used to convert unreadable Persian characters in URL to readable characters.
89+
Used to normalize url
9090

9191
Example:
9292

9393
```javascript
9494
starkString(
95-
"https://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C",
95+
"fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C",
9696
)
9797
.fixURL()
98-
.toString(); //returns https://fa.wikipedia.org/wiki/صفحهٔ_اصلی
98+
.toString(); //returns http://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C/
9999
```
100100

101101
---

babel.config.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

jest.config.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,12 @@
4141
"prettier": "^2.3.2",
4242
"prettier-plugin-jsdoc": "^0.3.23",
4343
"ts-jest": "25.5.1",
44+
"react-scripts": "^5.0.0",
4445
"typescript": "^4.3.5"
4546
},
4647
"scripts": {
47-
"prepare": "yarn build",
48+
"release": "yarn test && yarn build && yarn publish",
4849
"build": "tsc",
49-
"test": "yarn build && jest"
50+
"test": "react-scripts test"
5051
}
51-
}
52+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Prepare test
2-
import starkString from "./../lib";
2+
import starkString from "./../";
33

44
//persian char
55
test("should change Arabic characters to Persian", () => {
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
//Prepare test
2-
3-
import starkString from "./../lib";
1+
import starkString from "../";
42

53
test("should decode unreadable characters to correct Persian characters", () => {
64
expect(
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Prepare test
2-
import starkString from "./../lib";
2+
import starkString from "./../";
33

44
test("should convert numbers to Persian words", () => {
55
expect(starkString("999999999999").digitsToWords().toString()).toBe(
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
//Prepare test
2-
import starkString from "./../lib";
2+
import starkString from "./../";
33

44
test("should throw error", () => {
55
expect(() => starkString({})).toThrowError(Error);
66
});
77

8-
test("should throw error", () => {
8+
test("should throw error array with symbol", () => {
99
expect(() => starkString(["", "1", Symbol()])).toThrowError(Error);
1010
});
1111

12-
test("should throw error", () => {
12+
test("should throw error empty function", () => {
1313
expect(() => starkString(() => {})).toThrowError(Error);
1414
});

src/__tests__/fixUrl.test.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
//Prepare test
2+
3+
import starkString from "../";
4+
5+
test("should decode unreadable characters to correct Persian characters", () => {
6+
expect(
7+
starkString(
8+
"https://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C",
9+
)
10+
.decodeURL()
11+
.toString(),
12+
).toBe("https://fa.wikipedia.org/wiki/صفحهٔ_اصلی");
13+
});
14+
15+
describe("fix url", () => {
16+
test("fix url", () => {
17+
expect(starkString("fa.wikipedia.org/wiki").fixURL().toString()).toBe(
18+
"http://fa.wikipedia.org/wiki/",
19+
);
20+
21+
expect(
22+
starkString("https://fa.wikipedia.org/wiki/").fixURL().toString(),
23+
).toBe("https://fa.wikipedia.org/wiki/");
24+
25+
expect(
26+
starkString(
27+
"http://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C",
28+
)
29+
.fixURL()
30+
.toString(),
31+
).toBe(
32+
"http://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C/",
33+
);
34+
});
35+
36+
test("fix web socket or file url", () => {
37+
expect(starkString("wss://fa.wikipedia.org/wiki").fixURL().toString()).toBe(
38+
"wss://fa.wikipedia.org/wiki/",
39+
);
40+
41+
expect(starkString("ftp://fa.wikipedia.org/wiki").fixURL().toString()).toBe(
42+
"ftp://fa.wikipedia.org/wiki/",
43+
);
44+
});
45+
46+
test("dirty url", () => {
47+
expect(starkString("://fa.wikipedia.org/wiki").fixURL().toString()).toBe(
48+
"http://fa.wikipedia.org/wiki/",
49+
);
50+
expect(starkString("/fa.wikipedia.org/wiki").fixURL().toString()).toBe(
51+
"http://fa.wikipedia.org/wiki/",
52+
);
53+
expect(starkString("/////fa.wikipedia.org/wiki").fixURL().toString()).toBe(
54+
"http://fa.wikipedia.org/wiki/",
55+
);
56+
expect(starkString("http:fa.wikipedia.org/wiki").fixURL().toString()).toBe(
57+
"http://fa.wikipedia.org/wiki/",
58+
);
59+
60+
expect(
61+
starkString("http:::fa.wikipedia.org/wiki").fixURL().toString(),
62+
).toBe("http://fa.wikipedia.org/wiki/");
63+
64+
expect(starkString("wss:::fa.wikipedia.org/wiki").fixURL().toString()).toBe(
65+
"wss://fa.wikipedia.org/wiki/",
66+
);
67+
});
68+
});
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Prepare test
2-
import starkString from "./../lib";
2+
import starkString from "./../";
33

44
test("should convert to Zero-width non-joiner correction", () => {
55
expect(

0 commit comments

Comments
 (0)