* 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
48 lines
1.6 KiB
JavaScript
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',
|
|
);
|
|
});
|
|
});
|