diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fdc61bc748829d8a14f73c0903433da358b505d0..ca6687f96209ece97330e5f9e86dd12bf88d328b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,3 +6,69 @@ variables: include: 'https://gitlab.com/wpdesk/gitlab-ci/raw/master/gitlab-ci-1.2.yml' +integration codeception tests: + tags: + - codeception + - $TESTS_TAG + image: + name: wpdesknet/codeception:11 + entrypoint: [""] + variables: + WP_CLI_CACHE_DIR: /cache/wp-cli + APACHE_DOCUMENT_ROOT: ${CI_PROJECT_DIR}/tests/wordpress + CI_DEBUG_SERVICES: trace + services: + - name: mysql:5.6 + alias: mysqltests + command: [--max-allowed-packet=67108864] + needs: + - prepare prefixed vendor + - job: prepare translations + optional: true + - job: prepare tests + optional: true + - job: prepare npm assets + optional: true + artifacts: + when: always + expire_in: 1 month + name: "acceptance logs" + paths: + - tests/codeception/tests/_output + reports: + junit: tests/codeception/tests/_output/report.xml + stage: tests + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: never + - exists: + - tests/codeception/tests/integration.suite.yml + allow_failure: false + interruptible: true + before_script: + - echo "xdebug.max_nesting_level=2560" >> /usr/local/etc/php/php.ini + - export DEPENDENT_PLUGINS_DIR=${CI_PROJECT_DIR}/tests/dependent_plugins + - export MYSQL_IP=$(awk '/^[[:space:]]*($|#)/{next} /mysqltests/{print $1; exit}' /etc/hosts) + - export WOOTESTS_IP=127.0.0.1 + - export TEST_SITE_WP_URL="http://${WOOTESTS_IP}" + - cd ${CI_PROJECT_DIR} + - mkdir -p /project + - cd ${CI_PROJECT_DIR} + - mkdir -p ${APACHE_DOCUMENT_ROOT} + - cd ${APACHE_DOCUMENT_ROOT} + - cd ${CI_PROJECT_DIR} + - composer prepare-wordpress-for-codeception + - composer prepare-local-codeception-tests + - chmod -R a+w ${APACHE_DOCUMENT_ROOT}/wp-content/uploads + - touch ${APACHE_DOCUMENT_ROOT}/wp-content/debug.log + - chmod a+w ${APACHE_DOCUMENT_ROOT}/wp-content/debug.log + - echo "End before" + - cd ${CI_PROJECT_DIR} + script: + - vendor/bin/codecept run integration --steps --xml --html -f --verbose + after_script: + - cp ${APACHE_DOCUMENT_ROOT}/wp-content/debug.log tests/codeception/tests/_output/debug.log || true + - cp ${APACHE_DOCUMENT_ROOT}/wp-content/uploads/wpdesk-logs/wpdesk_debug.log tests/codeception/tests/_output/wpdesk_debug.log || true + - rm -r ${APACHE_DOCUMENT_ROOT} + + diff --git a/tests/integration/TestAjaxHandler.php b/tests/integration/TestAjaxHandler.php index 3007b4bee16624efbcea301ad8b386ef38c77e1a..5d09962599fca95e1d2dcde8b1cb30ea07f10598 100644 --- a/tests/integration/TestAjaxHandler.php +++ b/tests/integration/TestAjaxHandler.php @@ -62,7 +62,8 @@ class TestAjaxHandler extends WP_UnitTestCase $ajaxHandler->hooks(); $this->expectOutputString('<script type="text/javascript"> - jQuery(document).on("click",".notice-dismiss",function(){var a=jQuery(this).closest("div.notice").data("notice-name");var b=jQuery(this).closest("div.notice").data("source");if(""!==a){jQuery.ajax({url:ajaxurl,type:"post",data:{action:"wpdesk_notice_dismiss",notice_name:a,source:b},success:function(c){}})}});jQuery(document).on("click",".notice-dismiss-link",function(){jQuery(this).closest("div.notice").data("source",jQuery(this).data("source"));jQuery(this).closest("div.notice").find(".notice-dismiss").click()});</script> +' . file_get_contents( __DIR__ . '/../../assets/js/notice.js' ) . ' +</script> ' );