Files
wp-plugin-starter-template-…/cypress/e2e/playground-single-site.cy.js
Marcus Quinn 7bac0dc63d t096: fix unconditional plugin activation assertion in cypress test (#101)
* fix: make plugin activation assertion unconditional in cypress test

Addresses Gemini Code Assist review feedback on PR #84 (issue #96).
The 'Plugin is activated' test was using an if/else guard that caused
it to silently pass when the plugin row was missing. Replaced with a
direct unconditional cy.get() + cy.within() assertion so the test
fails clearly if the plugin is not found.

Optional plugin checks (Plugin Toggle, Kadence Blocks) retain their
conditional logic as those are genuinely optional in the test env.

Closes #96

* fix: reduce duplicated Cypress assertion for SonarCloud

* fix: lower Sonar new-code duplication in playground test
2026-03-18 21:38:00 +00:00

49 lines
1.6 KiB
JavaScript

/* eslint-env mocha, jquery, cypress */
describe('WordPress Playground Single Site Tests', () => {
beforeEach(() => {
cy.visit('/', { timeout: 30000 });
});
it('Can access the site', () => {
cy.get('body', { timeout: 15000 }).should('exist');
});
it('Can access the admin area', () => {
cy.loginAsAdmin();
cy.get('#wpadminbar', { timeout: 15000 }).should('exist');
});
it('Plugin is activated', () => {
cy.loginAsAdmin();
cy.visit('/wp-admin/plugins.php', { timeout: 30000 });
cy.get('body', { timeout: 15000 }).then(($body) => {
expect(
$body.find('tr[data-slug="wp-plugin-starter-template-for-ai-coding"] .deactivate a').length,
'Starter template plugin should be present and active'
).to.be.greaterThan(0);
if ($body.text().includes('Plugin Toggle')) {
cy.contains('tr', 'Plugin Toggle').should('exist');
cy.contains('tr', 'Plugin Toggle').find('.deactivate').should('exist');
} else {
cy.log('Plugin Toggle not found, skipping check');
}
if ($body.text().includes('Kadence Blocks')) {
cy.contains('tr', 'Kadence Blocks').find('.deactivate').should('exist');
} else {
cy.log('Kadence Blocks plugin not found, skipping check');
}
});
});
it('Plugin settings page loads correctly', () => {
cy.loginAsAdmin();
cy.visit('/wp-admin/options-general.php', { timeout: 30000 });
cy.get('#wpbody-content', { timeout: 15000 }).should('exist');
cy.get('h1').should('be.visible');
cy.title().should('include', 'Settings');
});
});