hedgedoc/cypress/integration/profile.spec.ts

80 lines
2.1 KiB
TypeScript
Raw Normal View History

/*
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
describe('profile page', () => {
beforeEach(() => {
cy.intercept(
{
url: '/api/mock-backend/private/tokens',
method: 'GET'
},
{
body: [
{
label: 'cypress-App',
2021-12-02 17:03:03 -05:00
keyId: 'cypress',
createdAt: '2021-11-21T01:11:12+01:00',
lastUsed: '2021-11-21T01:11:12+01:00',
validUntil: '2023-11-21'
}
]
}
)
cy.intercept(
{
url: '/api/mock-backend/private/tokens',
method: 'POST'
},
{
body: {
label: 'cypress',
2021-12-02 17:03:03 -05:00
keyId: 'cypress2',
secret: 'c-y-p-r-e-s-s',
2021-12-02 17:03:03 -05:00
createdAt: '2021-11-21T01:11:12+01:00',
lastUsed: '2021-11-21T01:11:12+01:00',
validUntil: '2023-11-21'
},
statusCode: 201
}
)
cy.intercept(
{
url: '/api/mock-backend/private/tokens/cypress',
method: 'DELETE'
},
{
body: [],
statusCode: 204
}
)
cy.visit('/profile', { retryOnNetworkFailure: true })
})
describe('access tokens', () => {
it('list existing tokens', () => {
cy.getByCypressId('access-token-label').contains('cypress-App')
})
it('delete token', () => {
cy.getByCypressId('access-token-delete-button').click()
cy.getByCypressId('access-token-modal-delete').as('deletion-modal')
cy.get('@deletion-modal').should('be.visible').find('.modal-footer .btn-danger').click()
cy.get('@deletion-modal').should('not.exist')
})
it('add token', () => {
cy.getByCypressId('access-token-add-button').should('be.disabled')
cy.getByCypressId('access-token-add-input-label').type('cypress')
cy.getByCypressId('access-token-modal-add').should('not.exist')
cy.getByCypressId('access-token-add-button').should('not.be.disabled').click()
cy.getByCypressId('access-token-modal-add')
.should('be.visible')
.find('input[readonly]')
.should('have.value', 'c-y-p-r-e-s-s')
})
})
})