Skip to content

Commit a6f43bd

Browse files
committed
chore: added tests for the crawlHTML API
1 parent a7cc1a9 commit a6f43bd

File tree

3 files changed

+187
-0
lines changed

3 files changed

+187
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import process from 'node:process'
2+
import { expect, test, jest } from '@jest/globals'
3+
import chalk from 'chalk'
4+
5+
import IXCrawl from 'src/'
6+
7+
const args = process.argv.slice(3)
8+
const environment = args[0]
9+
10+
let xCrawl: typeof IXCrawl
11+
if (environment === 'dev') {
12+
xCrawl = require('src/').default
13+
} else if (environment === 'pro') {
14+
xCrawl = require('publish/')
15+
}
16+
17+
jest.setTimeout(60000)
18+
19+
async function testCrawlHTML() {
20+
const testXCrawl = xCrawl({ proxy: { urls: ['http://localhost:14892'] } })
21+
22+
const res = await testXCrawl.crawlHTML({
23+
targets: [
24+
'http://localhost:8888/html',
25+
{ url: 'http://localhost:8888/html' }
26+
]
27+
})
28+
29+
return res.reduce((prev, item) => prev && item.isSuccess, true)
30+
}
31+
32+
test('crawlHTML', async () => {
33+
console.log(chalk.bgGreen('================ crawlHTML ================'))
34+
await expect(testCrawlHTML()).resolves.toBe(true)
35+
})

test/environment/test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import './arguments/fingerprint.test'
33
import './arguments/proxy.test'
44

55
import './written/crawlPage.test'
6+
import './written/crawlHTML.test'
67
import './written/crawlData.test'
78
import './written/crawlFile.test'
89

910
import './functions/errorCollect.test'
1011

1112
import './api/crawlPage.test'
13+
import './api/crawlHTML.test'
1214
import './api/crawlData.test'
1315
import './api/crawlFile.test'
1416
import './api/startPolling.test'
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
import process from 'node:process'
2+
import { expect, test, jest } from '@jest/globals'
3+
import chalk from 'chalk'
4+
5+
import IXCrawl from 'src/'
6+
7+
const args = process.argv.slice(3)
8+
const environment = args[0]
9+
10+
let xCrawl: typeof IXCrawl
11+
if (environment === 'dev') {
12+
xCrawl = require('src/').default
13+
} else if (environment === 'pro') {
14+
xCrawl = require('publish/')
15+
}
16+
17+
jest.setTimeout(60000)
18+
19+
/* 1.Written */
20+
// 1.1.written string
21+
async function writtenString() {
22+
const testXCrawl = xCrawl()
23+
24+
const res = await testXCrawl.crawlHTML('http://localhost:8888/html')
25+
26+
return res.isSuccess
27+
}
28+
29+
// 1.2.written CrawlHTMLDetailConfig
30+
async function writtenCrawlHTMLDetailConfig() {
31+
const testXCrawl = xCrawl()
32+
33+
const res = await testXCrawl.crawlHTML({
34+
url: 'http://localhost:8888/html'
35+
})
36+
37+
return res.isSuccess
38+
}
39+
40+
// 1.3.written (string | CrawlHTMLDetailConfig)[]
41+
async function writtenStringAndCrawlHTMLDetailConfigArr() {
42+
const testXCrawl = xCrawl()
43+
44+
const res = await testXCrawl.crawlHTML([
45+
'http://localhost:8888/html',
46+
{ url: 'http://localhost:8888/html' }
47+
])
48+
49+
return res.reduce((prev, item) => prev && item.isSuccess, true)
50+
}
51+
52+
// 1.4.written CrawlHTMLAdvancedConfig
53+
async function writtenCrawlHTMLAdvancedConfig() {
54+
const testXCrawl = xCrawl()
55+
56+
const res = await testXCrawl.crawlHTML({
57+
targets: [
58+
'http://localhost:8888/html',
59+
{ url: 'http://localhost:8888/html' }
60+
]
61+
})
62+
63+
return res.reduce((prev, item) => prev && item.isSuccess, true)
64+
}
65+
66+
/* 2.Loader Config */
67+
// 2.1.Loader Base Config
68+
async function loaderBaseConfig() {
69+
const testXCrawl = xCrawl({
70+
baseUrl: 'http://localhost:8888',
71+
proxy: { urls: ['http://localhost:14892'] },
72+
timeout: 10000,
73+
intervalTime: { max: 1000 },
74+
maxRetry: 0
75+
})
76+
77+
const res = await testXCrawl.crawlHTML(['/html', '/html'])
78+
79+
return res.reduce((prev, item) => prev && item.isSuccess, true)
80+
}
81+
82+
// 2.2.Loader Advanced Config
83+
async function loaderAdvancedConfig() {
84+
const testXCrawl = xCrawl({
85+
baseUrl: 'http://localhost:8888'
86+
})
87+
88+
const res = await testXCrawl.crawlHTML({
89+
targets: ['/html', '/html'],
90+
proxy: { urls: ['http://localhost:14892'] },
91+
timeout: 10000,
92+
intervalTime: { max: 1000 },
93+
maxRetry: 0
94+
})
95+
96+
return res.reduce((prev, item) => prev && item.isSuccess, true)
97+
}
98+
99+
test('crawlHTML - writtenString', async () => {
100+
console.log(
101+
chalk.bgGreen('================ crawlHTML - writtenString ================')
102+
)
103+
await expect(writtenString()).resolves.toBe(true)
104+
})
105+
106+
test('crawlHTML - writtenCrawlHTMLDetailConfig', async () => {
107+
console.log(
108+
chalk.bgGreen(
109+
'================ crawlHTML - writtenCrawlHTMLDetailConfig ================'
110+
)
111+
)
112+
await expect(writtenCrawlHTMLDetailConfig()).resolves.toBe(true)
113+
})
114+
115+
test('crawlHTML - writtenStringAndCrawlHTMLDetailConfigArr', async () => {
116+
console.log(
117+
chalk.bgGreen(
118+
'================ crawlHTML - writtenStringAndCrawlHTMLDetailConfigArr ================'
119+
)
120+
)
121+
await expect(writtenStringAndCrawlHTMLDetailConfigArr()).resolves.toBe(true)
122+
})
123+
124+
test('crawlHTML - writtenCrawlHTMLAdvancedConfig', async () => {
125+
console.log(
126+
chalk.bgGreen(
127+
'================ crawlHTML - writtenCrawlHTMLAdvancedConfig ================'
128+
)
129+
)
130+
await expect(writtenCrawlHTMLAdvancedConfig()).resolves.toBe(true)
131+
})
132+
133+
/* 2.Loader Config */
134+
test('crawlHTML - loaderBaseConfig', async () => {
135+
console.log(
136+
chalk.bgGreen(
137+
'================ crawlHTML - loaderBaseConfig ================'
138+
)
139+
)
140+
await expect(loaderBaseConfig()).resolves.toBe(true)
141+
})
142+
143+
test('crawlHTML - loaderAdvancedConfig', async () => {
144+
console.log(
145+
chalk.bgGreen(
146+
'================ crawlHTML - loaderAdvancedConfig ================'
147+
)
148+
)
149+
await expect(loaderAdvancedConfig()).resolves.toBe(true)
150+
})

0 commit comments

Comments
 (0)