Visitar URL original
add e2e test for app json viewer · owncloud/web-extensions@2bb14c2 · GitHub
Skip to content

Commit 2bb14c2

Browse files
committed
add e2e test for app json viewer
Signed-off-by: nabim777 <nabinalemagar019@gmail.com>
1 parent 9df4f43 commit 2bb14c2

6 files changed

Lines changed: 68 additions & 4 deletions

File tree

‎.drone.star‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ E2E_COVERED_APPS = [
2121
"draw-io",
2222
"unzip",
2323
"progress-bars",
24+
"json-viewer",
2425
]
2526

2627
OCIS_URL = "https://ocis:9200"
@@ -345,6 +346,7 @@ def ocisService():
345346
"mv packages/web-app-draw-io/dist /apps/draw-io",
346347
"mv packages/web-app-unzip/dist /apps/unzip",
347348
"mv packages/web-app-progress-bars/dist /apps/progress-bars",
349+
"mv packages/web-app-json-viewer/dist /apps/json-viewer",
348350
],
349351
"volumes": [
350352
{
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { test, Page, expect } from '@playwright/test'
2+
import { FilesAppBar } from '../../../../support/pages/filesAppBarActions'
3+
import { FilesPage } from '../../../../support/pages/filesPage'
4+
import { loginAsUser, logout } from '../../../../support/helpers/authHelper'
5+
6+
let adminPage: Page
7+
8+
test.beforeEach(async ({ browser }) => {
9+
const admin = await loginAsUser(browser, 'admin', 'admin')
10+
adminPage = admin.page
11+
})
12+
13+
test.afterEach(async () => {
14+
const file = new FilesPage(adminPage)
15+
await file.deleteAllFromPersonal()
16+
await logout(adminPage)
17+
})
18+
19+
test('open json file', async () => {
20+
const uploadFile = new FilesAppBar(adminPage)
21+
await uploadFile.uploadFile('jsonFile.json')
22+
23+
const filePage = new FilesPage(adminPage)
24+
await filePage.openJsonFile()
25+
await expect(filePage.jsonViewerSelector).toBeVisible()
26+
})

‎packages/web-app-json-viewer/vite.config.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,8 @@ export default defineConfig({
1111
entryFileNames: 'json-viewer.js'
1212
}
1313
}
14+
},
15+
test: {
16+
exclude: ['**/e2e/**']
1417
}
1518
})

‎playwright.config.ts‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,21 @@ export default defineConfig({
7878
testDir: './packages/web-app-progress-bars/tests/e2e',
7979
use: { ...devices['Desktop Safari'], browserName: 'webkit', ignoreHTTPSErrors: true },
8080
},
81+
{
82+
name: 'json-viewer-chromium',
83+
testDir: './packages/web-app-json-viewer/tests/e2e',
84+
use: { ...devices['Desktop Chrome'], browserName: 'chromium', ignoreHTTPSErrors: true },
85+
},
86+
{
87+
name: 'json-viewer-firefox',
88+
testDir: './packages/web-app-json-viewer/tests/e2e',
89+
use: { ...devices['Desktop Firefox'], browserName: 'firefox', ignoreHTTPSErrors: true },
90+
},
91+
{
92+
name: 'json-viewer-webkit',
93+
testDir: './packages/web-app-json-viewer/tests/e2e',
94+
use: { ...devices['Desktop Safari'], browserName: 'webkit', ignoreHTTPSErrors: true },
95+
},
8196

8297
/* Test against mobile viewports. */
8398
// {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"test": "This is a dummy JSON file for e2e testing",
3+
"web-app-json-viewer": {
4+
"enabled": true,
5+
"description": "Used for viewing JSON files in prettified way."
6+
}
7+
}

‎support/pages/filesPage.ts‎

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@ import { Locator, Page } from '@playwright/test'
22

33
export class FilesPage {
44
readonly page: Page
5-
readonly uploadBtn: Locator
6-
readonly extractHereBtnBtn: Locator
5+
readonly extractHereBtn: Locator
76
readonly selectAllCheckbox: Locator
7+
readonly jsonViewerBtn: Locator
8+
readonly resourceActiondropDownBtn: Locator
9+
readonly jsonViewerSelector: Locator
810

911

1012
constructor(page: Page) {
1113
this.page = page
12-
this.extractHereBtnBtn = this.page.locator('.context-menu .oc-files-actions-unzip-archive')
14+
this.extractHereBtn = this.page.locator('.context-menu .oc-files-actions-unzip-archive')
1315
this.selectAllCheckbox = this.page.getByLabel('Select all')
16+
this.jsonViewerBtn = this.page.locator('.oc-files-actions-json-viewer-trigger')
17+
this.resourceActiondropDownBtn = this.page.locator('.resource-table-btn-action-dropdown')
18+
this.jsonViewerSelector = this.page.locator('#json-viewer')
1419
}
1520

1621
getResourceNameSelector(resource: string): Locator {
@@ -27,7 +32,7 @@ export class FilesPage {
2732
resp.status() === 201 &&
2833
resp.request().method() === 'MKCOL'
2934
),
30-
this.extractHereBtnBtn.click()
35+
this.extractHereBtn.click()
3136
])
3237
}
3338

@@ -41,4 +46,10 @@ export class FilesPage {
4146
const folderLocator = this.getResourceNameSelector(folder)
4247
await folderLocator.click()
4348
}
49+
50+
async openJsonFile(){
51+
await this.resourceActiondropDownBtn.click()
52+
await this.jsonViewerBtn.click()
53+
await this.jsonViewerSelector.click()
54+
}
4455
}

0 commit comments

Comments
 (0)