Skip to content

Commit cfd9f2f

Browse files
committed
Convert Promises chain to async/await syntax
1 parent 901fd79 commit cfd9f2f

File tree

2 files changed

+83
-43
lines changed

2 files changed

+83
-43
lines changed

helpers/integration-tests.js

Lines changed: 30 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,33 @@ const URLsToVerify = [
88
'https://sonarwhal-staging.azurewebsites.net/docs/user-guide/hints/'
99
];
1010

11-
puppeteer.launch()
12-
.then((browser) => {
13-
const responseCollection = new Promise((resolve) => {
14-
const responses = new Map();
15-
16-
URLsToVerify.forEach((url, index) => {
17-
browser.newPage()
18-
.then((page) => {
19-
page.goto(url)
20-
.then((response) => {
21-
responses.set(url, response.status());
22-
})
23-
.catch((error) => {
24-
responses.set(url, `❌ ${error}`);
25-
})
26-
.finally(() => {
27-
if (index === (URLsToVerify.length - 1)) {
28-
resolve(responses);
29-
browser.close();
30-
}
31-
});
32-
})
33-
.catch((err) => {
34-
console.log(`Error on Puppeteer's newPage() function. Info: ${err}`);
35-
});
36-
});
37-
});
38-
39-
responseCollection.then((responses) => {
40-
for (const [url, response] of responses) {
41-
if (response !== 200) {
42-
const error = typeof response === 'number' ? `RESPONSE STATUS => ${response}` : response;
43-
44-
throw new Error(`❌ Test failed! A request to the URL ${url} has returned the following error: ${error}`);
45-
}
46-
47-
console.log(`✅ Success! ${url} => Status: ${response}`);
48-
}
49-
});
50-
})
51-
.catch((err) => {
52-
console.log(`Error on launching Puppeteer. Info: ${err}`);
53-
});
11+
const runPuppeteer = async (url) => {
12+
const browser = await puppeteer.launch();
13+
const page = await browser.newPage();
14+
const response = await page.goto(url);
15+
16+
console.log(
17+
`${
18+
response.status() === 200 ? '✅ Success' : '❌ Failure'
19+
}! ${url} => Status: ${response.status()}`
20+
);
21+
22+
await browser.close();
23+
24+
return response.status();
25+
};
26+
27+
console.log('⏳ Integration tests are running...');
28+
29+
URLsToVerify.forEach(async (url, index) => {
30+
let errorFound = false;
31+
const resultStatus = await runPuppeteer(url);
32+
33+
if (resultStatus !== 200) {
34+
errorFound = true;
35+
}
36+
37+
if (index === URLsToVerify.length - 1 && errorFound) {
38+
throw new Error('🚨 Integration test has failed!');
39+
}
40+
});
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const puppeteer = require('puppeteer');
2+
3+
const URLsToVerify = [
4+
'https://sonarwhal-staging.azurewebsites.net/',
5+
'https://sonarwhal-staging.azurewebsites.net/scanner/',
6+
'https://sonarwhal-staging.azurewebsites.net/search/?q=bla',
7+
'https://sonarwhal-staging.azurewebsites.net/about/changelog/1',
8+
'https://sonarwhal-staging.azurewebsites.net/docs/user-guide/hints/'
9+
];
10+
11+
puppeteer.launch()
12+
.then((browser) => {
13+
const responseCollection = new Promise((resolve) => {
14+
const responses = new Map();
15+
16+
URLsToVerify.forEach((url, index) => {
17+
browser.newPage()
18+
.then((page) => {
19+
page.goto(url)
20+
.then((response) => {
21+
responses.set(url, response.status());
22+
})
23+
.catch((error) => {
24+
responses.set(url, `❌ ${error}`);
25+
})
26+
.finally(() => {
27+
if (index === (URLsToVerify.length - 1)) {
28+
resolve(responses);
29+
browser.close();
30+
}
31+
});
32+
})
33+
.catch((err) => {
34+
console.log(`Error on Puppeteer's newPage() function. Info: ${err}`);
35+
});
36+
});
37+
});
38+
39+
responseCollection.then((responses) => {
40+
for (const [url, response] of responses) {
41+
if (response !== 200) {
42+
const error = typeof response === 'number' ? `RESPONSE STATUS => ${response}` : response;
43+
44+
throw new Error(`❌ Test failed! A request to the URL ${url} has returned the following error: ${error}`);
45+
}
46+
47+
console.log(`✅ Success! ${url} => Status: ${response}`);
48+
}
49+
});
50+
})
51+
.catch((err) => {
52+
console.log(`Error on launching Puppeteer. Info: ${err}`);
53+
});

0 commit comments

Comments
 (0)