docbrown/cypress/e2e/seededFlows/podcastFlows/followPodcast.spec.js
Mac Siri afa73e06e3
Replace Webpacker with Esbuild (#20470)
* Migrate to esbuild WIP

* Add exclude

* Remove redundant file

* Move file

* Move to javascript_include_tag

* Lint fix

* WIP

* WIP

* Add watch mode to esbuild WIP

* Get jest working

* Remove babel

* Revert "Remove babel"

This reverts commit 6da35260aa19d6f97f586deb66c0ecaf48433b73.

* More WIP

* Got image to load

* WIP

* Resolve audit

* Lint fix

* WIP

* Fix jest spec

* [CI] Remove asset-restore for test build stage

* Production compliant

* Temp disable sourcemap

* Update glob

* Add esbuild helper to stimulus

* Import fragment

* Temp disable coverage to see failing tests

* Fix broken spec

* Address lint

* Set proper es6 target

* Use esbuild for everything

* wait what

* Revert "Set proper es6 target"

This reverts commit 98f5278093421baa8ffe2ca580845b01c1a1eadf.

* Revert "Use esbuild for everything"

This reverts commit 0ac46738f07ffcb6af095ccb1ffa5e439b7fefa3.

* Replace uglifier with terser

* New compiled assets version

* Remvoe honeybadger-io/webpack

* Remove cypress coverage checks for now

* Update jsconfig.json

* Update docker-compose

* Remove public/packs-test from ci cache
2024-01-25 20:29:21 +00:00

48 lines
1.6 KiB
JavaScript

describe('Follow podcast', () => {
beforeEach(() => {
cy.testSetup();
cy.fixture('users/adminUser.json').as('user');
cy.get('@user').then((user) => {
cy.loginAndVisit(user, '/developeronfire');
});
});
it('Follows and unfollows a podcast', () => {
cy.get('[data-follow-clicks-initialized]');
cy.findByRole('heading', {
name: 'Developer on Fire',
});
cy.findByRole('button', { name: 'Follow podcast: Developer on Fire' }).as(
'followButton',
);
cy.intercept('/follows').as('followRequest');
cy.get('@followButton').should('have.text', 'Follow');
cy.get('@followButton').click();
// Inner text should now be following
cy.wait('@followRequest');
cy.get('@followButton').should('have.text', 'Following');
cy.get('@followButton').should('have.attr', 'aria-pressed', 'true');
// Check that state is persisted on refresh
cy.reload()
cy.findByRole('button', { name: 'Follow podcast: Developer on Fire' }).as(
'followButton',
);
cy.get('@followButton').should('have.text', 'Following');
cy.get('@followButton').should('have.attr', 'aria-pressed', 'true');
// Check it reverts back to Follow on click
cy.get('@followButton').click();
cy.get('@followButton').should('have.text', 'Follow');
cy.get('@followButton').should('have.attr', 'aria-pressed', 'false');
// Check that state is persisted on refresh
cy.visitAndWaitForUserSideEffects('/developeronfire');
cy.findByRole('button', { name: 'Follow podcast: Developer on Fire' }).as(
'followButton',
);
});
});