import.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. describe('Import', () => {
  2. it('Opens import page', () => {
  3. cy.resetDB();
  4. cy.loginAndVisit('/subscribers/import');
  5. });
  6. it('Imports subscribers', () => {
  7. const cases = [
  8. { mode: 'check-subscribe', status: 'enabled', count: 102 },
  9. { mode: 'check-blocklist', status: 'blocklisted', count: 102 },
  10. ];
  11. cases.forEach((c) => {
  12. cy.get(`[data-cy=${c.mode}] .check`).click();
  13. if (c.status === 'enabled') {
  14. cy.get('.list-selector input').click();
  15. cy.get('.list-selector .autocomplete a').first().click();
  16. }
  17. cy.fixture('subs.csv').then((data) => {
  18. cy.get('input[type="file"]').attachFile({
  19. fileContent: data.toString(),
  20. fileName: 'subs.csv',
  21. mimeType: 'text/csv',
  22. });
  23. });
  24. cy.get('button.is-primary').click();
  25. cy.get('section.wrap .has-text-success');
  26. cy.get('button.is-primary').click();
  27. cy.wait(100);
  28. // Verify that 100 (+2 default) subs are imported.
  29. cy.loginAndVisit('/subscribers');
  30. cy.wait(100);
  31. cy.get('[data-cy=count]').then(($el) => {
  32. cy.expect(parseInt($el.text().trim())).to.equal(c.count);
  33. });
  34. cy.get('tbody td[data-label=Status]').each(($el) => {
  35. cy.wrap($el).find(`.tag.${c.status}`);
  36. });
  37. cy.loginAndVisit('/subscribers/import');
  38. cy.wait(100);
  39. });
  40. });
  41. });