This repository was archived by the owner on Aug 25, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
118 lines (93 loc) · 3.71 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const assert = require("assert");
const { Builder, By, until, Key } = require("selenium-webdriver");
const edge = require("selenium-webdriver/edge");
require("dotenv").config();
const testcases = require("./data/data.json");
const getAlert = async (driver, target, testcase) => {
await driver.get(target);
await driver.findElement(By.id("fullName")).sendKeys(testcase.fullName);
await driver.findElement(By.id("citizenId")).sendKeys(testcase.citizenId);
await driver.findElement(By.id("issuedBy")).sendKeys(testcase.issuedBy);
await driver.findElement(By.id("issuedDate")).sendKeys(testcase.issuedDate);
await driver.findElement(By.id("gender")).sendKeys(testcase.gender);
await driver.findElement(By.id("birthday")).sendKeys(testcase.birthday);
await driver.findElement(By.id("ethnic")).sendKeys(testcase.ethnic);
await driver.findElement(By.id("phoneNumber")).sendKeys(testcase.phoneNumber);
await driver.findElement(By.id("email")).sendKeys("test@gmail.com");
await driver
.findElement(By.id("permanentAddress"))
.sendKeys(testcase.permanentAddress);
await driver
.findElement(By.id("contactAddress"))
.sendKeys(testcase.contactAddress);
await driver.findElement(By.id("school")).sendKeys(testcase.school);
await driver.findElement(By.id("gradYear")).sendKeys(testcase.gradYear);
await driver
.findElement(By.id("admissionArea"))
.sendKeys(testcase.admissionArea);
await driver
.findElement(By.id("admissionPrior"))
.sendKeys(testcase.admissionPrior);
await driver.findElement(By.id("major")).sendKeys(testcase.major);
await driver.findElement(By.id("group")).sendKeys(testcase.group);
if (testcase.isAdvanced === "TRUE") {
await driver.findElement(By.id("isAdvanced")).sendKeys(Key.SPACE);
}
await driver.findElement(By.id("mathScore")).sendKeys(testcase.mathScore);
await driver
.findElement(By.id("physicsScore"))
.sendKeys(testcase.physicsScore);
await driver
.findElement(By.id("chemistryScore"))
.sendKeys(testcase.chemistryScore);
await driver
.findElement(By.id("biologyScore"))
.sendKeys(testcase.biologyScore);
await driver
.findElement(By.id("literatureScore"))
.sendKeys(testcase.literatureScore);
await driver
.findElement(By.id("historyScore"))
.sendKeys(testcase.historyScore);
await driver
.findElement(By.id("geographyScore"))
.sendKeys(testcase.geographyScore);
await driver
.findElement(By.id("foreignLanguageScore"))
.sendKeys(testcase.foreignLanguageScore);
await driver
.findElement(By.id("civicEducationScore"))
.sendKeys(testcase.civicEducationScore);
await driver.findElement(By.id("applicationTerm")).sendKeys(Key.SPACE);
await driver.findElement(By.id("btnSubmit")).sendKeys(Key.ENTER);
await driver.wait(until.alertIsPresent());
let confirmAlert = await driver.switchTo().alert();
await confirmAlert.accept();
await driver.wait(until.alertIsPresent());
let resultAlert = await driver.switchTo().alert();
const result = await resultAlert.getText();
await resultAlert.accept();
return result;
};
let service;
let driver;
const target = `http://${process.env.DEFAULT_HOST}:${process.env.DEFAULT_PORT}`;
describe("UI Test", () => {
before(() => {
service = new edge.ServiceBuilder(process.env.DEFAULT_WEB_DRIVER);
driver = new Builder()
.forBrowser("MicrosoftEdge")
.setEdgeService(service)
.setEdgeOptions(new edge.Options().addArguments("--inprivate"))
.build();
});
after(() => {
driver.quit();
});
testcases.forEach((testcase, index) => {
it(`Testcase ${index + 1}`, async () => {
const result = await getAlert(driver, target, testcase);
assert.equal(result, testcase.expectedResult);
});
});
});