Skip to content

Commit 353c3cd

Browse files
Add files via upload
1 parent f801b62 commit 353c3cd

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import { expect } from "@playwright/test";
2+
const path = require('path');
3+
4+
async function createNewtabularData(page, title,description) {
5+
await page.waitForTimeout(500)
6+
//click on the tabular data tab
7+
await page.locator('.pr-1 > :nth-child(1)').click()
8+
// Select the New tabular data element header and verify its visibility
9+
const headerElement = page.locator('.h2');
10+
await expect(headerElement).toBeVisible();
11+
await page.locator('#Title').fill(title);
12+
await page.locator('#Description').fill(description);
13+
// Wait for 500 milliseconds
14+
await page.waitForTimeout(500);
15+
//click on create button
16+
await page.locator('.flex > .variant-filled-primary').click()
17+
// verify the visibiliy of the text of the file upload
18+
await page.waitForTimeout(500)
19+
const fileuploadtitle = page.locator('.space-y-2 > form > :nth-child(1) > .dropzone > span > :nth-child(1)');
20+
await page.waitForSelector('.space-y-2 > form > :nth-child(1) > .dropzone > span > :nth-child(1)');
21+
await expect(fileuploadtitle).toBeVisible();
22+
// Wait for 500 milliseconds
23+
await page.waitForTimeout(500)
24+
25+
}
26+
async function uploadfiles(page){
27+
const filePath = path.resolve(__dirname, '../../Date_and_time_formats.csv');
28+
const handle = page.locator('input[type="file"]').nth(0);
29+
await handle.setInputFiles(filePath);
30+
// verifyy the alert message for file upload
31+
const alertsuccess = page.locator('.alert-message > p');
32+
await expect(alertsuccess).toBeVisible();
33+
await page.locator('#SelectDataStructure').fill('Date_and_time_formats');
34+
await page.waitForTimeout(2000)
35+
await page.locator('#SelectDataStructure').press('Enter');
36+
}
37+
38+
async function markingVariableData(page){
39+
40+
await page.waitForTimeout(500)
41+
await page.waitForSelector('#selectVar');
42+
const title = page.locator('#edit > #title > b');
43+
await expect(title).toHaveText('Mark at least Variable and Data');
44+
await page.locator(':nth-child(1) > .w-8').click()
45+
await page.locator('#selectVar').click()
46+
await page.locator(':nth-child(2) > .w-8').click()
47+
await page.locator('#selectData').click()
48+
await page.waitForTimeout(500)
49+
await page.locator(':nth-child(8) > .btn').click()
50+
// await page.waitForTimeout(10000)
51+
}
52+
53+
async function EnterTitleandDesc(page,title,desc){
54+
await page.waitForTimeout(500)
55+
//verify the primary key alert message
56+
const alertmsg = page.locator('.alert-message > p');
57+
await page.waitForSelector('.alert-message > p');
58+
await expect(alertmsg).toHaveText('Please select a (combined) primary key.');
59+
await page.waitForTimeout(500)
60+
await page.locator('#title').fill(title);
61+
await page.locator(':nth-child(2) > #description-container > .label > #description').fill(desc);
62+
}
63+
64+
async function AssignDataTypeDisplayPattern(page,getindex,datatype,displaypattern){
65+
await page.waitForTimeout(500)
66+
const index = getindex; // Ensure this has a valid value
67+
const setDesc = await page.locator(`:nth-child(${index}) > #variable-0-container-info > .card > .py-2 > :nth-child(1) > .grow > [slot="property"] > #description-container > .label > #description`);
68+
const setDataType = await page.locator(`:nth-child(${index}) > #variable-0-container-info #dataType`);
69+
const setDisplayPattern = await page.locator(`:nth-child(${index}) > #variable-0-container-info > .card .svelte-select > .value-container > #displayPattern`);
70+
71+
await page.waitForSelector(':nth-child(1) > #variable-0-container-info #dataType');
72+
setDesc.fill('this is test description');
73+
await page.waitForTimeout(500)
74+
75+
76+
77+
setDataType.fill(datatype);
78+
await page.waitForTimeout(500);
79+
setDataType.press('ArrowDown');
80+
await page.waitForTimeout(500);
81+
setDataType.press('Enter');
82+
83+
await page.waitForTimeout(500)
84+
setDisplayPattern.fill(displaypattern);
85+
await page.waitForTimeout(500)
86+
setDisplayPattern.press('Enter');
87+
88+
}
89+
90+
async function markPrimaryandSave(page){
91+
92+
const firstToggleInput = page.locator('.slide-toggle .slide-toggle-label > .slide-toggle-track').nth(0);
93+
await firstToggleInput.click(); // Click the first matching element
94+
await page.locator('#save').click()
95+
96+
}
97+
98+
99+
async function validatePrimaryandSucessSymbols(page){
100+
101+
await page.waitForSelector('.text-error-500');
102+
const primarykey = page.locator('.text-error-500');
103+
await expect(primarykey).toBeVisible();
104+
const succes = page.locator('.gap-1 > .text-success-500');
105+
await page.waitForSelector('.gap-1 > .text-success-500');
106+
await expect(succes).toBeVisible();
107+
}
108+
109+
async function submitData(page){
110+
111+
await page.locator('.h-full > :nth-child(1) > .flex > .btn').click()
112+
const submitmodal = page.locator('[data-testid="modal"]');
113+
const importstartmodal = page.locator('[data-testid="modal"]');
114+
await expect(submitmodal).toBeVisible();
115+
await page.locator('.modal-footer > .variant-filled').click()
116+
await expect(importstartmodal).toBeVisible();
117+
await page.locator('.modal-footer > .btn').click()
118+
119+
const alertmsg = page.locator('.alert-message > p');
120+
await page.waitForSelector('.alert-message > p');
121+
await expect(alertmsg).toHaveText('All upload information has been entered and the upload will start now. After completion an email will be sent.');
122+
}
123+
module.exports = {
124+
createNewtabularData,
125+
uploadfiles,
126+
markingVariableData,
127+
EnterTitleandDesc,
128+
AssignDataTypeDisplayPattern,
129+
markPrimaryandSave,
130+
validatePrimaryandSucessSymbols,
131+
submitData
132+
133+
};

0 commit comments

Comments
 (0)