diff --git a/.github/workflows/brand-plugin-test.yml b/.github/workflows/brand-plugin-test.yml new file mode 100644 index 0000000..f31d801 --- /dev/null +++ b/.github/workflows/brand-plugin-test.yml @@ -0,0 +1,74 @@ +name: Build and Test Module Updates in Brand Plugins +on: + pull_request: + types: [ opened, reopened, ready_for_review, synchronize ] + branches: + - main + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + +jobs: + setup: + name: Setup + runs-on: ubuntu-latest + outputs: + branch: ${{ steps.extract_branch.outputs.branch }} + steps: + + - name: Extract branch name + shell: bash + run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT + id: extract_branch + + bluehost: + name: Bluehost Build and Test + needs: setup + uses: newfold-labs/workflows/.github/workflows/module-plugin-test.yml@main + with: + module-repo: ${{ github.repository }} + module-branch: ${{ needs.setup.outputs.branch }} + plugin-repo: 'bluehost/bluehost-wordpress-plugin' + secrets: inherit + + hostgator: + name: HostGator Build and Test + needs: setup + uses: newfold-labs/workflows/.github/workflows/module-plugin-test.yml@main + with: + module-repo: ${{ github.repository }} + module-branch: ${{ needs.setup.outputs.branch }} + plugin-repo: 'newfold-labs/wp-plugin-hostgator' + secrets: inherit + + web: + name: Web.com Build and Test + needs: setup + uses: newfold-labs/workflows/.github/workflows/module-plugin-test.yml@main + with: + module-repo: ${{ github.repository }} + module-branch: ${{ needs.setup.outputs.branch }} + plugin-repo: 'newfold-labs/wp-plugin-web' + secrets: inherit + + crazydomains: + name: Crazy Domains Build and Test + needs: setup + uses: newfold-labs/workflows/.github/workflows/module-plugin-test.yml@main + with: + module-repo: ${{ github.repository }} + module-branch: ${{ needs.setup.outputs.branch }} + plugin-repo: 'newfold-labs/wp-plugin-crazy-domains' + secrets: inherit + + mojo: + name: Mojo Build and Test + needs: setup + uses: newfold-labs/workflows/.github/workflows/module-plugin-test.yml@main + with: + module-repo: ${{ github.repository }} + module-branch: ${{ needs.setup.outputs.branch }} + plugin-repo: 'newfold-labs/wp-plugin-mojo' + secrets: inherit diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..6f7f377 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16 diff --git a/includes/CacheTypes/File.php b/includes/CacheTypes/File.php index c9a0b77..a88e569 100644 --- a/includes/CacheTypes/File.php +++ b/includes/CacheTypes/File.php @@ -7,8 +7,8 @@ use NewfoldLabs\WP\Module\Performance\Performance; use NewfoldLabs\WP\ModuleLoader\Container; use WP_Forge\WP_Htaccess_Manager\htaccess; - use wpscholar\Url; + use function NewfoldLabs\WP\Module\Performance\getCacheLevel; use function NewfoldLabs\WP\Module\Performance\removeDirectory; use function NewfoldLabs\WP\Module\Performance\shouldCachePages; @@ -299,7 +299,7 @@ protected function getStoragePathForRequest() { if ( ! isset( $path ) ) { $url = new Url(); - $basePath = wp_parse_url( home_url(), PHP_URL_PATH ); + $basePath = wp_parse_url( home_url('/'), PHP_URL_PATH ); $path = trailingslashit( self::CACHE_DIR . str_replace( $basePath, '', esc_url( $url->path ) ) ); } diff --git a/tests/cypress/integration/performance.cy.js b/tests/cypress/integration/performance.cy.js index 5473eb0..eab3f11 100644 --- a/tests/cypress/integration/performance.cy.js +++ b/tests/cypress/integration/performance.cy.js @@ -1,61 +1,59 @@ // -describe('Performance Page', function () { - let appClass = '.' + Cypress.env('appId'); - - before(() => { - cy.visit('/wp-admin/admin.php?page=' + Cypress.env('pluginId') + '#/performance'); +describe( 'Performance Page', function () { + const appClass = '.' + Cypress.env( 'appId' ); + + before( () => { + cy.visit( + '/wp-admin/admin.php?page=' + + Cypress.env( 'pluginId' ) + + '#/performance' + ); cy.injectAxe(); - - }); + } ); - it('Is Accessible', () => { - cy.wait(500); - cy.checkA11y( appClass + '-app-body'); - }); + it( 'Is Accessible', () => { + cy.wait( 500 ); + cy.checkA11y( appClass + '-app-body' ); + } ); - it('Has Cache Settings', () => { - cy.get('.newfold-cache-settings') + it( 'Has Cache Settings', () => { + cy.get( '.newfold-cache-settings' ) .scrollIntoView() - .should('be.visible'); - }); + .should( 'be.visible' ); + } ); - it('Has Clear Cache Settings', () => { - cy.get('.newfold-clear-cache') + it( 'Has Clear Cache Settings', () => { + cy.get( '.newfold-clear-cache' ) .scrollIntoView() - .should('be.visible'); - }); - - it('Clear Cache Disabled when Cache is Disabled', () => { + .should( 'be.visible' ); + } ); - cy.get('input[type="radio"]#cache-level-0').check(); + it( 'Clear Cache Disabled when Cache is Disabled', () => { + cy.get( 'input[type="radio"]#cache-level-0' ).check(); - cy.wait(500); + cy.wait( 500 ); - cy.get('.clear-cache-button') + cy.get( '.clear-cache-button' ) .scrollIntoView() - .should('have.attr', 'disabled'); + .should( 'have.attr', 'disabled' ); - cy.get('input[type="radio"]#cache-level-1').check(); + cy.get( 'input[type="radio"]#cache-level-1' ).check(); - cy.get('.clear-cache-button') + cy.get( '.clear-cache-button' ) .scrollIntoView() - .should('not.have.attr', 'disabled'); - - cy.get('.nfd-notifications') - .contains('p', 'Cache') - .should('be.visible'); - }); - - it('Clear Cache Button Functions', () => { - - cy.get('.clear-cache-button').click(); - - - cy.get('.nfd-notifications') - .contains('p', 'Cache cleared') - .should('be.visible'); - - }); - -}); + .should( 'not.have.attr', 'disabled' ); + + cy.get( '.nfd-notifications' ) + .contains( 'p', 'Cache' ) + .should( 'be.visible' ); + } ); + + it( 'Clear Cache Button Functions', () => { + cy.get( '.clear-cache-button' ).click(); + + cy.get( '.nfd-notifications' ) + .contains( 'p', 'Cache cleared' ) + .should( 'be.visible' ); + } ); +} );