Skip to content

Commit b4f044c

Browse files
committed
migrate scripts/pit/its/initializer.js to use test-utils
1 parent 62bd243 commit b4f044c

File tree

1 file changed

+8
-59
lines changed

1 file changed

+8
-59
lines changed

scripts/pit/its/initializer.js

Lines changed: 8 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const { expect } = require('@playwright/test');
2-
const { log, args, createPage, closePage, takeScreenshot, waitForServerReady, dismissDevmode, execCommand } = require('./test-utils');
2+
const { log, args, createPage, closePage, takeScreenshot, waitForServerReady, dismissDevmode, execCommand, compileAndReload } = require('./test-utils');
33
// When using playwright in lib mode we cannot use expect, thus we use regular asserts
44
const assert = require('assert');
55

@@ -8,70 +8,17 @@ const fs = require('fs');
88
const Net = require('net');
99
const isWin = /^win/.test(process.platform);
1010

11-
let buildCmd, buildArgs;
12-
if (fs.existsSync('mvnw') ) {
13-
if (isWin) {
14-
buildCmd = fs.existsSync('mvnw.bat') ? 'mvnw.bat' : 'mvnw.cmd';
15-
} else {
16-
buildCmd = './mvnw';
17-
}
18-
buildArgs = 'compiler:compile';
19-
} else if (fs.existsSync('gradlew')) {
20-
if (isWin) {
21-
buildCmd = fs.existsSync('gradlew.bat') ? 'gradlew.bat' : 'gradlew.cmd';
22-
} else {
23-
buildCmd = './gradlew';
24-
}
25-
buildArgs = 'compileJava';
26-
} else {
27-
throw new Error('No build tool found');
28-
}
29-
30-
const compileProject = async () => await execCommand(`${buildCmd} ${buildArgs}`);
31-
32-
async function isPortTaken(port) {
33-
return new Promise((resolve, reject) => {
34-
const tester = Net.createServer()
35-
.once('error', err => resolve(true))
36-
.once('listening', () => {
37-
log(`Port ${port} not listening`);
38-
tester.close();
39-
resolve(false);
40-
})
41-
.listen(port)
42-
});
43-
}
44-
45-
async function reload(page, url) {
46-
log(`reloading page`);
47-
let i = 0;
48-
while(i++ < 30 && ! await isPortTaken(url.split(':')[2].split('/')[0])) {
49-
await page.waitForTimeout(2000);
50-
}
51-
await page.reload();
52-
await page.waitForURL(url);
53-
log(`page reloaded`);
54-
await takeScreenshot(page, 'initializer.js', 'view-reloaded');
55-
}
56-
57-
async function compile(page, url) {
58-
log('Re-compiling project');
59-
await compileProject();
60-
await page.waitForTimeout(10000);
61-
await reload(page, url)
62-
}
63-
6411
(async () => {
6512
const arg = args();
6613

6714
const page = await createPage(arg.headless, arg.ignoreHTTPSErrors);
6815
page.setViewportSize({width: 811, height: 1224});
6916

7017
await waitForServerReady(page, arg.url);
71-
18+
7219
// Dismiss dev mode notification if present
7320
await dismissDevmode(page);
74-
21+
7522
await page.waitForTimeout(3000);
7623
await takeScreenshot(page, __filename, 'view-loaded');
7724

@@ -89,12 +36,14 @@ async function compile(page, url) {
8936
await page.getByRole('link', { name: linkText }).click();
9037
await page.waitForTimeout(2000);
9138
await takeScreenshot(page, __filename, 'view-created');
92-
await reload(page, arg.url);
39+
await waitForServerReady(page, arg.url, { maxRetries: 30, retryInterval: 2000 });
9340
const view = (await execCommand(`find src/main/frontend src/main/java -name '${viewName}'`)).stdout.trim();
9441
assert.ok(fs.existsSync(view));
9542

9643
// Compile the application so as spring-devtools watches the changes
97-
await compile(page, arg.url);
44+
await compileAndReload(page, arg.url, { waitTime: 10000 });
45+
// Additional reload to ensure server is ready after compilation
46+
await waitForServerReady(page, arg.url, { maxRetries: 30, retryInterval: 2000 });
9847

9948
await takeScreenshot(page, __filename, 'app-compiled');
10049

@@ -112,7 +61,7 @@ async function compile(page, url) {
11261
}
11362

11463
log(`checking if the new view is available`);
115-
await reload(page, arg.url);
64+
await waitForServerReady(page, arg.url, { maxRetries: 30, retryInterval: 2000 });
11665
await page.waitForTimeout(2000);
11766
await takeScreenshot(page, __filename, 'view-reloaded-after-compiling');
11867

0 commit comments

Comments
 (0)