Visitar URL original
[tests-only][full-ci] test(e2e): Vault notifications are isolated from Drive notifications by Asmitapaudel · Pull Request #13148 · owncloud/ocis · GitHub
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions web/tests/e2e/specs/vault-storage/notification.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { fileAction } from '../../environment/constants'
import { test } from '../../environment/test'
import * as api from '../../steps/api/api'
import * as ui from '../../steps/ui/index'

test.describe('Vault Notifications', { tag: '@predefined-users' }, () => {
test('Vault notifications are isolated from Drive notifications', async () => {
await api.usersHaveBeenCreated({ stepUser: 'Admin', users: ['Alice', 'Brian'] })
await api.userHasAssignedRolesToUsers({
stepUser: 'Admin',
users: [
{ id: 'Alice', role: 'Admin' },
{ id: 'Brian', role: 'Space Admin' }
]
})

await ui.userLogsIn({ stepUser: 'Alice' })
await ui.userCreatesResources({
stepUser: 'Alice',
resources: [{ name: 'test.txt', type: 'txtFile', content: 'some content' }]
})
await ui.userSharesResources({
stepUser: 'Alice',
actionType: fileAction.sideBarPanel,
shares: [
{
resource: 'test.txt',
recipient: 'Brian',
type: 'user',
role: 'Can view',
resourceType: 'file'
}
]
})
await ui.userSwitchesToVaultMode({ stepUser: 'Alice' })
await ui.userIsRedirectedToAuthenticatorPage({ stepUser: 'Alice' })
await ui.userAuthenticatesWithOTP({ stepUser: 'Alice', deviceName: 'test' })
await ui.userIsInVaultMode({ stepUser: 'Alice' })

await ui.userCreatesResources({
stepUser: 'Alice',
resources: [{ name: 'lorem.txt', type: 'txtFile', content: 'some content' }]
})
Comment thread
Asmitapaudel marked this conversation as resolved.
Resolved

await ui.userLogsIn({ stepUser: 'Brian' })

await ui.userSharesResources({
stepUser: 'Alice',
actionType: fileAction.sideBarPanel,
shares: [
{
resource: 'lorem.txt',
recipient: 'Brian',
type: 'user',
role: 'Can view',
resourceType: 'file'
}
]
})
await ui.userLogsOut({ stepUser: 'Alice' })

await ui.userShouldSeeNotifications({
stepUser: 'Brian',
expectedMessages: ['%user_alice_displayName% shared test.txt with you']
})
await ui.userShouldNotSeeNotifications({
stepUser: 'Brian',
unexpectedMessages: ['%user_alice_displayName% shared lorem.txt with you']
})

await ui.userSwitchesToVaultMode({ stepUser: 'Brian' })
await ui.userIsRedirectedToAuthenticatorPage({ stepUser: 'Brian' })
await ui.userAuthenticatesWithOTP({ stepUser: 'Brian', deviceName: 'test' })
await ui.userIsInVaultMode({ stepUser: 'Brian' })

await ui.userShouldSeeNotifications({
stepUser: 'Brian',
expectedMessages: ['%user_alice_displayName% shared lorem.txt with you']
})
await ui.userShouldNotSeeNotifications({
stepUser: 'Brian',
unexpectedMessages: ['%user_alice_displayName% shared test.txt with you']
})
await ui.userLogsOut({ stepUser: 'Brian' })
})
Comment thread
Asmitapaudel marked this conversation as resolved.
Resolved
})
17 changes: 17 additions & 0 deletions web/tests/e2e/steps/ui/application.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,23 @@ export async function userShouldSeeNoNotifications({
expect(messages).toHaveLength(0)
}

export async function userShouldNotSeeNotifications({
stepUser,
unexpectedMessages
}: {
stepUser: string
unexpectedMessages: string[]
}): Promise<void> {
const world = getWorld()
const { page } = world.actorsEnvironment.getActor({ key: stepUser })
const application = new objects.runtime.Application({ page })
const messages = await application.getNotificationMessages()

for (const message of unexpectedMessages) {
expect(messages).not.toContain(substitute(message))
}
}

export async function userWaitsForTokenRenewal({
stepUser,
renewalType
Expand Down
Loading