Skip to content

Commit b4e8da9

Browse files
max-nextcloudsusnux
authored andcommitted
feat(playwright): createRandomUser() and login()
Signed-off-by: Max <max@nextcloud.com>
1 parent 6929c10 commit b4e8da9

3 files changed

Lines changed: 28 additions & 23 deletions

File tree

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,32 @@
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
55

6-
import { runExec, addUser, User } from '../../../dist'
7-
import { expect, type APIRequestContext } from '@playwright/test'
6+
import { User } from './User'
7+
import { addUser } from './docker'
8+
import type { APIRequestContext } from 'playwright'
89

910
/**
10-
* Restore database and data folder for tests
11+
* Create a new random user
12+
* @return The new user
1113
*/
12-
export function restoreDatabase() {
13-
runExec('rm -rf data && tar -xf backup.tar')
14+
export async function createRandomUser(): Promise<User> {
15+
const user = User.createRandom()
16+
await addUser(user)
17+
return user
1418
}
1519

1620
/**
1721
* Helper to login on the Nextcloud instance
1822
* @param request API request object
19-
* @param user The username to login
20-
* @param password The password to login
23+
* @param user The user to login
2124
*/
2225
export async function login(
2326
request: APIRequestContext,
2427
user: User,
2528
) {
26-
const tokenResponse = await request.get('./csrftoken')
27-
expect(tokenResponse.status()).toBe(200)
29+
const tokenResponse = await request.get('./csrftoken', {
30+
failOnStatusCode: true,
31+
})
2832
const requesttoken = (await tokenResponse.json()).token
2933

3034
const loginResponse = await request.post('./login', {
@@ -36,19 +40,10 @@ export async function login(
3640
headers: {
3741
Origin: tokenResponse.url().replace(/index.php.*/, ''),
3842
},
43+
failOnStatusCode: true,
3944
})
40-
expect(loginResponse.status()).toBe(200)
41-
42-
const response = await request.get('apps/files')
43-
expect(response.status()).toBe(200)
44-
}
4545

46-
/**
47-
* Create a new random user
48-
* @return The new user
49-
*/
50-
export async function createRandomUser(): Promise<User> {
51-
const user = User.createRandom()
52-
await addUser(user)
53-
return user
46+
const response = await request.get('apps/files', {
47+
failOnStatusCode: true,
48+
})
5449
}

playwright/support/fixtures/random-user.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
import { test as base } from '@playwright/test'
7-
import { createRandomUser, login } from '../utils/session'
7+
import { createRandomUser, login } from '../../../dist/playwright'
88

99
interface RandomUserFixture {
1010
user: User

rollup.config.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,14 @@ export default [
7979
file: 'dist/cypress.js',
8080
format: 'cjs',
8181
}),
82+
83+
// Playwright commands and utils
84+
config('./lib/playwright.ts', {
85+
file: 'dist/playwright.mjs',
86+
format: 'esm',
87+
}),
88+
config('./lib/playwright.ts', {
89+
file: 'dist/playwright.js',
90+
format: 'cjs',
91+
}),
8292
]

0 commit comments

Comments
 (0)