Files
flood/cypress/integration/register.spec.ts
2020-11-15 23:03:47 +08:00

115 lines
4.7 KiB
TypeScript

context('Register', () => {
beforeEach(() => {
cy.server();
cy.route({
method: 'GET',
url: 'http://127.0.0.1:4200/api/auth/verify?*',
response: {initialUser: true},
status: 200,
}).as('verify-request');
cy.visit('http://127.0.0.1:4200/register');
cy.url().should('include', 'register');
});
it('Client selection menu', () => {
cy.get('.select').click();
cy.get('.context-menu').should('be.visible');
cy.get('.select__item').contains('qBittorrent').click();
cy.get('.context-menu').should('not.be.visible');
cy.get('.input[name="client"]').should('have.value', 'qBittorrent');
cy.get('.input--text[name="url"]').should('be.visible');
cy.get('.input--text[name="qbt-username"]').should('be.visible');
cy.get('.input--text[name="qbt-password"]').should('be.visible');
});
it('Connection type selection', () => {
cy.get('.toggle-input__label').contains('TCP').click();
cy.get('.toggle-input__element[value="tcp"]').should('be.checked');
cy.get('.toggle-input__element[value="socket"]').should('not.be.checked');
cy.get('.input--text[name="host"]').should('be.visible');
cy.get('.input--text[name="port"]').should('be.visible');
cy.get('.input--text[name="socket"]').should('not.be.visible');
cy.get('.toggle-input__label').contains('Socket').click();
cy.get('.toggle-input__element[value="tcp"]').should('not.be.checked');
cy.get('.toggle-input__element[value="socket"]').should('be.checked');
cy.get('.input--text[name="host"]').should('not.be.visible');
cy.get('.input--text[name="port"]').should('not.be.visible');
cy.get('.input--text[name="socket"]').should('be.visible');
});
it('Register without username', () => {
cy.get('.input[name="password"]').type('test');
cy.get('.select').click();
cy.get('.select__item').contains('rTorrent').click();
cy.get('.toggle-input__label').contains('Socket').click();
cy.get('.input--text[name="socket"]').type('/data/rtorrent.sock');
cy.get('.button[type="submit"]').click();
cy.get('.application__view--auth-form').should('be.visible');
cy.get('.application__content').should('not.be.visible');
cy.get('.application__loading-overlay').should('not.be.visible');
cy.get('.error').should('be.visible');
});
it('Register without password', () => {
cy.get('.input[name="username"]').type('test');
cy.get('.select').click();
cy.get('.select__item').contains('rTorrent').click();
cy.get('.toggle-input__label').contains('TCP').click();
cy.get('.input--text[name="host"]').type('127.0.0.1');
cy.get('.input--text[name="port"]').type('5000');
cy.get('.button[type="submit"]').click();
cy.get('.application__view--auth-form').should('be.visible');
cy.get('.application__content').should('not.be.visible');
cy.get('.application__loading-overlay').should('not.be.visible');
cy.get('.error').should('be.visible');
});
it('Register without connection settings', () => {
cy.get('.input[name="username"]').type('test');
cy.get('.input[name="password"]').type('test');
cy.get('.button[type="submit"]').click();
cy.get('.application__view--auth-form').should('be.visible');
cy.get('.application__content').should('not.be.visible');
cy.get('.application__loading-overlay').should('not.be.visible');
cy.get('.error').should('be.visible');
});
it('Register with socket connection settings, server error occurred', () => {
cy.get('.input[name="username"]').type('test');
cy.get('.input[name="password"]').type('test');
cy.get('.select').click();
cy.get('.select__item').contains('rTorrent').click();
cy.get('.toggle-input__label').contains('Socket').click();
cy.get('.input--text[name="socket"]').type('/data/rtorrent.sock');
cy.server();
cy.route({
method: 'POST',
url: 'http://127.0.0.1:4200/api/auth/register',
response: {},
status: 500,
}).as('register-request');
cy.get('.button[type="submit"]').click();
cy.get('.application__view--auth-form').should('be.visible');
cy.get('.application__content').should('not.be.visible');
cy.get('.application__loading-overlay').should('not.be.visible');
cy.get('.error').should('be.visible');
});
it('Register with qBittorrent connection settings', () => {
cy.get('.input[name="username"]').type('test');
cy.get('.input[name="password"]').type('test');
cy.get('.select').click();
cy.get('.select__item').contains('qBittorrent').click();
cy.get('.input--text[name="url"]').type('http://127.0.0.1:8080');
cy.get('.input--text[name="qbt-username"]').type('admin');
cy.get('.input--text[name="qbt-password"]').type('adminadmin');
cy.get('.button[type="submit"]').click();
});
});