Skip to content

Commit 18dc092

Browse files
mguidonodeimaiz
andauthored
🎨 Add 2 rclone e2e tests (#4635)
Co-authored-by: Odei Maiz <[email protected]>
1 parent 54c8647 commit 18dc092

File tree

2 files changed

+175
-0
lines changed

2 files changed

+175
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// node rclone_large.js [url] [--user user] [--pass password] [--demo]
2+
3+
const utils = require('../utils/utils');
4+
const tutorialBase = require('./tutorialBase');
5+
6+
const args = process.argv.slice(2);
7+
const {
8+
url,
9+
user,
10+
pass,
11+
newUser,
12+
startTimeout,
13+
basicauthUsername,
14+
basicauthPassword,
15+
enableDemoMode
16+
} = utils.parseCommandLineArguments(args)
17+
18+
const templateName = "rclone -- large";
19+
20+
async function runTutorial() {
21+
const tutorial = new tutorialBase.TutorialBase(url, templateName, user, pass, newUser, basicauthUsername, basicauthPassword, enableDemoMode);
22+
let studyId;
23+
try {
24+
await tutorial.start();
25+
const studyData = await tutorial.openTemplate(1000);
26+
studyId = studyData["data"]["uuid"];
27+
28+
const workbenchData = utils.extractWorkbenchData(studyData["data"]);
29+
await tutorial.waitForServices(
30+
workbenchData["studyId"],
31+
[workbenchData["nodeIds"][0], workbenchData["nodeIds"][1], workbenchData["nodeIds"][2], workbenchData["nodeIds"][3], workbenchData["nodeIds"][4]],
32+
startTimeout,
33+
false
34+
);
35+
36+
await tutorial.waitFor(5000);
37+
38+
for (let j = 0; j < 5; j++) {
39+
// open JLab
40+
await tutorial.openNode(j);
41+
await tutorial.waitFor(12000);
42+
43+
// Run the jlab nbook
44+
const jLabIframe = await tutorial.getIframe(workbenchData["nodeIds"][j]);
45+
46+
await tutorial.takeScreenshot("before_nb_selection");
47+
const input2outputFileSelector = '[title~="TouchRandomFileLarge.ipynb"]';
48+
await jLabIframe.waitForSelector(input2outputFileSelector);
49+
await jLabIframe.click(input2outputFileSelector, {
50+
clickCount: 2
51+
});
52+
await tutorial.takeScreenshot("after_nb_selection");
53+
54+
await tutorial.waitFor(5000);
55+
// click Run Menu
56+
const mainRunMenuBtnSelector = '#jp-MainMenu > ul > li:nth-child(4)'; // select the Run Menu
57+
await utils.waitAndClick(jLabIframe, mainRunMenuBtnSelector)
58+
59+
await tutorial.takeScreenshot("after_run_menu");
60+
61+
// click Run All Cells
62+
const mainRunAllBtnSelector = '#jp-mainmenu-run > ul > li:nth-child(12)'; // select the Run
63+
await utils.waitAndClick(jLabIframe, mainRunAllBtnSelector)
64+
65+
await tutorial.takeScreenshot("after_run_all_menu");
66+
67+
68+
await tutorial.waitFor(60000); // we are creating 12 x 1 GB files with 75 % probability
69+
}
70+
}
71+
catch (err) {
72+
await tutorial.setTutorialFailed(true);
73+
console.log('Tutorial error: ' + err);
74+
}
75+
finally {
76+
await tutorial.leave(studyId);
77+
}
78+
79+
if (tutorial.getTutorialFailed()) {
80+
throw "Tutorial Failed";
81+
}
82+
}
83+
84+
runTutorial()
85+
.catch(error => {
86+
console.log('Puppeteer error: ' + error);
87+
process.exit(1);
88+
});
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// node rclone_small.js [url] [--user user] [--pass password] [--demo]
2+
3+
const utils = require('../utils/utils');
4+
const tutorialBase = require('./tutorialBase');
5+
6+
const args = process.argv.slice(2);
7+
const {
8+
url,
9+
user,
10+
pass,
11+
newUser,
12+
startTimeout,
13+
basicauthUsername,
14+
basicauthPassword,
15+
enableDemoMode
16+
} = utils.parseCommandLineArguments(args)
17+
18+
const templateName = "rclone -- small";
19+
20+
async function runTutorial() {
21+
const tutorial = new tutorialBase.TutorialBase(url, templateName, user, pass, newUser, basicauthUsername, basicauthPassword, enableDemoMode);
22+
let studyId;
23+
try {
24+
await tutorial.start();
25+
const studyData = await tutorial.openTemplate(1000);
26+
studyId = studyData["data"]["uuid"];
27+
28+
const workbenchData = utils.extractWorkbenchData(studyData["data"]);
29+
await tutorial.waitForServices(
30+
workbenchData["studyId"],
31+
[workbenchData["nodeIds"][0], workbenchData["nodeIds"][1], workbenchData["nodeIds"][2], workbenchData["nodeIds"][3], workbenchData["nodeIds"][4]],
32+
startTimeout,
33+
false
34+
);
35+
36+
await tutorial.waitFor(5000);
37+
38+
for (let j = 0; j < 5; j++) {
39+
// open JLab
40+
await tutorial.openNode(j);
41+
await tutorial.waitFor(12000);
42+
43+
// Run the jlab nbook
44+
const jLabIframe = await tutorial.getIframe(workbenchData["nodeIds"][j]);
45+
46+
await tutorial.takeScreenshot("before_nb_selection");
47+
const input2outputFileSelector = '[title~="TouchRandomFile.ipynb"]';
48+
await jLabIframe.waitForSelector(input2outputFileSelector);
49+
await jLabIframe.click(input2outputFileSelector, {
50+
clickCount: 2
51+
});
52+
await tutorial.takeScreenshot("after_nb_selection");
53+
54+
await tutorial.waitFor(5000);
55+
// click Run Menu
56+
const mainRunMenuBtnSelector = '#jp-MainMenu > ul > li:nth-child(4)'; // select the Run Menu
57+
await utils.waitAndClick(jLabIframe, mainRunMenuBtnSelector)
58+
59+
await tutorial.takeScreenshot("after_run_menu");
60+
61+
// click Run All Cells
62+
const mainRunAllBtnSelector = '#jp-mainmenu-run > ul > li:nth-child(12)'; // select the Run
63+
await utils.waitAndClick(jLabIframe, mainRunAllBtnSelector)
64+
65+
await tutorial.takeScreenshot("after_run_all_menu");
66+
67+
await tutorial.waitFor(10000); // we are creating 100 x 1 KB files with 75 % probability
68+
}
69+
}
70+
catch (err) {
71+
await tutorial.setTutorialFailed(true);
72+
console.log('Tutorial error: ' + err);
73+
}
74+
finally {
75+
await tutorial.leave(studyId);
76+
}
77+
78+
if (tutorial.getTutorialFailed()) {
79+
throw "Tutorial Failed";
80+
}
81+
}
82+
83+
runTutorial()
84+
.catch(error => {
85+
console.log('Puppeteer error: ' + error);
86+
process.exit(1);
87+
});

0 commit comments

Comments
 (0)