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