Advertisement
Guest User

frontend.js

a guest
Dec 13th, 2017
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. describe('Dream Share', function () {
  2.     context('User', function () {
  3.         context('Register', function () {
  4.             it('Success', function () {
  5.                 let name = Math.random().toString(36).substr(2, 9);
  6.                 let password = Math.random().toString(36).substr(2, 9);
  7.  
  8.                 cy.visit('/');
  9.  
  10.                 cy.get('#nav-register').click();
  11.  
  12.                 cy.get('#register-name').type(name);
  13.                 cy.get('#register-email').type(name + '@mail.com');
  14.                 cy.get('#register-password').type(password);
  15.                 cy.get('#register-confirmpassword').type(password);
  16.  
  17.                 cy.get('#register-submit').click();
  18.                 cy.get('#modal-message-register').should('be.empty');
  19.                 cy.get('#authentication').should('not.be.visible');
  20.             });
  21.  
  22.             it('Invalid name', function () {
  23.                 let name = Math.random().toString(36).substr(2, 9);
  24.                 let password = Math.random().toString(36).substr(2, 9);
  25.                 let chars = ['#', ';', '>', '<', '!', '-', '=', '?', '*'];
  26.  
  27.                 cy.visit('/');
  28.  
  29.                 cy.get('#nav-register').click();
  30.  
  31.                 cy.get('#register-email').type(name + '@mail.com');
  32.                 cy.get('#register-password').type(password);
  33.                 cy.get('#register-confirmpassword').type(password);
  34.  
  35.                 for (var i = 0; i < chars.length; i++) {
  36.                     cy.get('#register-name').clear().type(name + chars[i]);
  37.                     cy.get('#register-submit').click();
  38.                     cy.get('#modal-message-register').contains('Nome inválido. Carateres especiais como # ; > < ! - = ? * não são permitidos.');
  39.                     cy.get('#authentication').should('be.visible');
  40.                 }
  41.             });
  42.  
  43.             it('Invalid email', function () {
  44.                 let name = Math.random().toString(36).substr(2, 9);
  45.                 let password = Math.random().toString(36).substr(2, 9);
  46.                 let invalid = [name + '@mai@l.com',
  47.                     name + '@mail.co#m',
  48.                     name + '@mail.c',
  49.                     name + '@' + 'abc@mail.com',
  50.                     name + ';' + 'abc@mail.com',
  51.                     name + ':' + 'abc@mail.com',
  52.                     name + '/' + 'abc@mail.com'];
  53.  
  54.                 cy.visit('/');
  55.  
  56.                 cy.get('#nav-register').click();
  57.  
  58.                 cy.get('#register-name').type(name);
  59.                 cy.get('#register-password').type(password);
  60.                 cy.get('#register-confirmpassword').type(password);
  61.  
  62.                 for (var i = 0; i < invalid.length; i++) {
  63.                     cy.get('#register-email').clear().type(invalid[i]);
  64.                     cy.get('#register-submit').click();
  65.                     cy.get('#modal-message-register').contains('Endereço de e-mail inválido.');
  66.                     cy.get('#authentication').should('be.visible');
  67.                 }
  68.             });
  69.  
  70.             it('Invalid password', function () {
  71.                 let name = Math.random().toString(36).substr(2, 9);
  72.                 let password = Math.random().toString(36).substr(2, 9);
  73.  
  74.                 cy.visit('/');
  75.  
  76.                 cy.get('#nav-register').click();
  77.  
  78.                 cy.get('#register-name').type(name);
  79.                 cy.get('#register-email').type(name + '@mail.com');
  80.  
  81.                 for (var i = 1; i < 4; i++) {
  82.                     cy.get('#register-password').type(password.substr(0, i));
  83.                     cy.get('#register-confirmpassword').type(password.substr(0, i));
  84.                     cy.get('#register-submit').click();
  85.                     cy.get('#modal-message-register').contains('Palavra-passe deve ter pelo menos 6 carateres.');
  86.                     cy.get('#authentication').should('be.visible');
  87.                 }
  88.             });
  89.  
  90.             it('Passwords don\'t match', function () {
  91.                 let name = Math.random().toString(36).substr(2, 9);
  92.                 let password = Math.random().toString(36).substr(2, 9);
  93.  
  94.                 cy.visit('/');
  95.  
  96.                 cy.get('#nav-register').click();
  97.  
  98.                 cy.get('#register-name').type(name);
  99.                 cy.get('#register-email').type(name + '@mail.com');
  100.                 cy.get('#register-password').type(password);
  101.                 cy.get('#register-confirmpassword').type(password + 'a');
  102.  
  103.                 cy.get('#register-submit').click();
  104.                 cy.get('#modal-message-register').contains('Palavras-passe não coincidem.');
  105.                 cy.get('#authentication').should('be.visible');
  106.  
  107.                 cy.get('#register-password').clear().type(password);
  108.                 cy.get('#register-confirmpassword').clear().type(password.toUpperCase());
  109.  
  110.                 cy.get('#register-submit').click();
  111.                 cy.get('#modal-message-register').contains('Palavras-passe não coincidem.');
  112.                 cy.get('#authentication').should('be.visible');
  113.             });
  114.  
  115.             it('E-mail in use', function () {
  116.                 let name = Math.random().toString(36).substr(2, 9);
  117.                 let password = Math.random().toString(36).substr(2, 9);
  118.  
  119.                 cy.visit('/');
  120.  
  121.                 cy.get('#nav-register').click();
  122.  
  123.                 cy.get('#register-name').type(name);
  124.                 cy.get('#register-email').type('b@mail.com');
  125.                 cy.get('#register-password').type(password);
  126.                 cy.get('#register-confirmpassword').type(password);
  127.  
  128.                 cy.get('#register-submit').click();
  129.                 cy.get('#modal-message-register').contains('E-mail já se encontra em uso.');
  130.                 cy.get('#authentication').should('be.visible');
  131.             });
  132.         });
  133.        
  134.         context('Login', function () {
  135.             it('Success', function () {
  136.                 let email = 'bs@mail.com';
  137.                 let password = 'abc123';
  138.  
  139.                 cy.visit('/');
  140.  
  141.                 cy.get('#nav-signin').click();
  142.                 cy.get('.btn-login').click();
  143.  
  144.                 cy.get('#signin-email').type(email);
  145.                 cy.get('#signin-password').type(password);
  146.  
  147.                 cy.get('#signin-submit').click();
  148.                 cy.get('#modal-message-login').should('be.empty');
  149.                 cy.get('#authentication').should('not.be.visible');
  150.  
  151.                 cy.getCookie('user').should('exist');
  152.             });
  153.  
  154.             it('Wrong email', function () {
  155.                 let email = 'b@mail.c';
  156.                 let password = 'abc123';
  157.  
  158.                 cy.visit('/');
  159.  
  160.                 cy.get('#nav-signin').click();
  161.                 cy.get('.btn-login').click();
  162.  
  163.                 cy.get('#signin-email').type(email);
  164.                 cy.get('#signin-password').type(password);
  165.  
  166.                 cy.get('#signin-submit').click();
  167.                 cy.get('#modal-message-login').contains('E-mail e/ou palavra-passe incorretos.');
  168.                 cy.get('#authentication').should('be.visible');
  169.  
  170.                 cy.getCookie('user').should('not.exist');
  171.             });
  172.  
  173.             it('Wrong password', function () {
  174.                 let email = 'bs@mail.com';
  175.                 let password = 'abc1234';
  176.  
  177.                 cy.visit('/');
  178.  
  179.                 cy.get('#nav-signin').click();
  180.                 cy.get('.btn-login').click();
  181.  
  182.                 cy.get('#signin-email').type(email);
  183.                 cy.get('#signin-password').type(password);
  184.  
  185.                 cy.get('#signin-submit').click();
  186.                 cy.get('#modal-message-login').contains('E-mail e/ou palavra-passe incorretos.');
  187.                 cy.get('#authentication').should('be.visible');
  188.  
  189.                 cy.getCookie('user').should('not.exist');
  190.             });
  191.            
  192.             it('Logout', function () {
  193.                 cy.request('POST', '/users/signin', {email: 'bs@mail.com', password: 'abc123'});
  194.                 cy.visit('/');
  195.                 cy.getCookie('user').should('exist');
  196.                 cy.get('#nav-logout').click();
  197.                 cy.getCookie('user').should('not.exist');
  198.             });
  199.         });
  200.        
  201.         context('Other user actions', function () {
  202.             it('Make donation', function() {
  203.                 cy.request('POST', '/users/signin', {email: 'bs@mail.com', password: 'abc123'});
  204.                 cy.visit('/campaigns/5a1e1b6618d55560b7db27a7');
  205.                 cy.getCookie('user').should('exist');
  206.                 cy.get('.lead-progress').then(($donated) => {
  207.                     const previousValue = $donated.text().replace('€', '');
  208.                     cy.get('.contribute-value').type('3.1');
  209.                     cy.get('.find-btn').contains('Contribuir').click();
  210.                     cy.get('.lead-progress').then(($donated) => {
  211.                         const currentValue = $donated.text().replace('€', '');
  212.                         expect(parseFloat(currentValue)).to.eq(parseFloat(previousValue)+3.1);
  213.                     });
  214.                 });
  215.             });
  216.            
  217.             it('Make comment', function() {
  218.                 const time = Date.now();
  219.                 cy.request('POST', '/users/signin', {email: 'bs@mail.com', password: 'abc123'});
  220.                 cy.visit('/campaigns/5a1e1b6618d55560b7db27a7');
  221.                 cy.getCookie('user').should('exist');
  222.                 cy.get('.campaign-nav-tabs a[href="#comments"]').click();
  223.                 cy.get('button[href="#commentArea"]').click();
  224.                 cy.get('#commentArea textarea').should('be.visible').type(time);
  225.                 cy.get('#commentArea button').contains('Comentar').click();
  226.                
  227.                 cy.get('.campaign-nav-tabs a[href="#comments"]').click();
  228.                 cy.get('.comment-container .comment-text').contains(time).should('exist');
  229.             });
  230.            
  231.             it('Make reply', function() {
  232.                 const time = Date.now();
  233.                 cy.request('POST', '/users/signin', {email: 'bs@mail.com', password: 'abc123'});
  234.                 cy.visit('/campaigns/5a1e1b6618d55560b7db27a7');
  235.                 cy.getCookie('user').should('exist');
  236.                 cy.get('.campaign-nav-tabs a[href="#comments"]').click();
  237.                 cy.get('a').contains('Responder').click().then(($reply) => {
  238.                     const id = $reply.attr('href');
  239.                     cy.get(id + ' textarea').should('be.visible').type(time);
  240.                     cy.get(id + ' button').contains('Responder').click();
  241.                    
  242.                     cy.get('.campaign-nav-tabs a[href="#comments"]').click();
  243.                     cy.get('.reply-container .reply-text').contains(time).should('exist');
  244.                 });
  245.             });
  246.            
  247.             it('Make report', function() {
  248.                 cy.request('POST', '/users/signin', {email: 'bs@mail.com', password: 'abc123'});
  249.                 cy.visit('/campaigns/5a1e1b6618d55560b7db27a7');
  250.                 cy.getCookie('user').should('exist');
  251.                 cy.get('.campaign-options a[data-target="#reportCampaignModal"]').click();
  252.                 cy.get('#reportCampaignModal').should('be.visible');
  253.                 cy.get('#reportBtn').click();
  254.             });
  255.        
  256.             // Edit/delete comment & reply
  257.            
  258.             // Create campaign
  259.            
  260.             // Edit campaign
  261.         });
  262.        
  263.        
  264.     });
  265. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement