forked from cybrespace/pinafore
39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
describe('Login spec', () => {
|
|
beforeEach(() => {
|
|
cy.visit('/')
|
|
cy.wait(500)
|
|
})
|
|
|
|
it('Cannot log in to a fake instance', () => {
|
|
cy.get('a').contains('log in to an instance').click()
|
|
|
|
cy.get('#instanceInput').clear().type('fake.nolanlawson.com')
|
|
cy.get('.add-new-instance').submit()
|
|
cy.get('.form-error', {timeout: 20000}).contains('Is this a valid Mastodon instance?')
|
|
cy.get('#instanceInput').type('.biz')
|
|
cy.get('.form-error').should('not.exist')
|
|
cy.get('#instanceInput').clear().type('fake.nolanlawson.com')
|
|
cy.get('.form-error').should('exist')
|
|
})
|
|
|
|
it('Logs in to localhost:3000', () => {
|
|
cy.login('foobar@localhost:3000', 'foobarfoobar')
|
|
|
|
cy.url().should('equal', 'http://localhost:4002/')
|
|
cy.get('article.status-article').should('exist')
|
|
})
|
|
|
|
it('Logs out', () => {
|
|
cy.login('foobar@localhost:3000', 'foobarfoobar')
|
|
cy.wait(500)
|
|
cy.get('nav a[aria-label=Settings]').click()
|
|
cy.get('a').contains('Instances').click()
|
|
cy.get('a').contains('localhost:3000').click()
|
|
cy.url().should('contain', '/settings/instances/localhost:3000')
|
|
cy.get('button').contains('Log out').click()
|
|
cy.get('#modal-dialog button').contains('OK').click()
|
|
cy.url().should('contain', '/settings/instances')
|
|
cy.contains("You're not logged in to any instances")
|
|
})
|
|
})
|