hedgedoc/cypress/integration/profile.spec.ts
Erik Michelson 053edb9ace
Add access token management to profile (#653)
* Add mock-files, API calls and overall tokens-UI

* Added ability to add tokens

* Added token deletion feature (based on timestamp)

* Replace mock-method by real API code

* Add cypress tests

* Added CHANGELOG information

* Un-access-ify i18n

* Set unique react-element key to timestamp of token-creation

* Remove 'now' from changelog

* Use @mrdrogdrog's suggestion for the info label
2020-10-10 11:38:32 +02:00

61 lines
1.5 KiB
TypeScript

describe('profile page', () => {
beforeEach(() => {
cy.route({
url: '/api/v2/tokens',
method: 'GET',
response: [
{
label: "cypress-App",
created: 1601991518
}
]
})
cy.route({
url: '/api/v2/tokens',
method: 'POST',
response: {
label: 'cypress',
secret: 'c-y-p-r-e-s-s',
created: Date.now()
}
})
cy.route({
url: '/api/v2/tokens/1601991518',
method: 'DELETE',
response: []
})
cy.visit('/profile')
})
describe('access tokens', () => {
it('list existing tokens', () => {
cy.get('.card.access-tokens .list-group-item .text-start.col')
.contains('cypress-App')
})
it('delete token', () => {
cy.get('.card.access-tokens .list-group-item .btn-danger')
.click()
cy.get('.modal-dialog')
.should('be.visible')
.get('.modal-footer .btn-danger')
.click()
cy.get('.modal-dialog')
.should('not.be.visible')
})
it('add token', () => {
cy.get('.card.access-tokens .btn-primary')
.should('be.disabled')
cy.get('.card.access-tokens input[type=text]')
.type('cypress')
cy.get('.card.access-tokens .btn-primary')
.should('not.be.disabled')
.click()
cy.get('.modal-dialog')
.should('be.visible')
.get('.modal-dialog input[readonly]')
.should('have.value', 'c-y-p-r-e-s-s')
})
})
})