}
test_services/workbench2_integration() {
- cd "$WORKSPACE/services/workbench2" && make integration-tests ARVADOS_DIRECTORY="${WORKSPACE}" WORKSPACE="$(pwd)" ${testargs[services/workbench2]}
+ if [[ -n ${interactive} ]]; then
+ INTERACTIVE=-i
+ fi
+ echo make integration-tests ARVADOS_DIRECTORY="${WORKSPACE}" WORKSPACE="$(pwd)" INTERACTIVE=$INTERACTIVE ${testargs[services/workbench2]}
+ cd "$WORKSPACE/services/workbench2" && make integration-tests ARVADOS_DIRECTORY="${WORKSPACE}" WORKSPACE="$(pwd)" INTERACTIVE=$INTERACTIVE ${testargs[services/workbench2]}
}
install_deps() {
integration-tests: yarn-install check-arvados-directory
yarn run cypress install
+ echo $(INTERACTIVE)
ifeq ($(SPECFILE), ALL)
- $(WORKSPACE)/tools/run-integration-tests.sh -a $(ARVADOS_DIRECTORY)
+ $(WORKSPACE)/tools/run-integration-tests.sh $(INTERACTIVE) -a $(ARVADOS_DIRECTORY)
else
- $(WORKSPACE)/tools/run-integration-tests.sh -a $(ARVADOS_DIRECTORY) -- --spec $(SPECFILE)
+ $(WORKSPACE)/tools/run-integration-tests.sh $(INTERACTIVE) -a $(ARVADOS_DIRECTORY) -- --spec $(SPECFILE)
endif
integration-tests-in-docker: workbench2-build-image check-arvados-directory
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
- setupNodeEvents(on, config) {
- return require('./cypress/plugins/index.js')(on, config)
- },
- baseUrl: 'https://localhost:3000/',
- experimentalRunAllSpecs: true,
- // The 2 options below make Electron crash a lot less and Firefox behave better
- experimentalMemoryManagement: true,
- numTestsKeptInMemory: 0,
+ setupNodeEvents(on, config) {
+ require("cypress-fail-fast/plugin")(on, config);
+ require('./cypress/plugins/index.js')(on, config)
+ return config;
+ },
+ baseUrl: 'https://localhost:3000/',
+ experimentalRunAllSpecs: true,
+ // The 2 options below make Electron crash a lot less and Firefox behave better
+ experimentalMemoryManagement: true,
+ numTestsKeptInMemory: 2,
},
})
cy.get("[data-cy=process-details-attributes-runtime-user]").should("not.exist");
});
- // Fake submitted by another user
+ // Fake submitted by another user to test "runtime user" field.
+ //
+ // Need to override both group contents and direct get,
+ // because it displays the the cached value from
+ // 'contents' for a few moments while requesting the full
+ // object.
+ cy.intercept({ method: "GET", url: "**/arvados/v1/groups/*/contents?*" }, req => {
+ req.on('response', res => {
+ res.body.items.forEach(item => {
+ item.modified_by_user_uuid = "zzzzz-tpzed-000000000000000";
+ });
+ });
+ });
cy.intercept({ method: "GET", url: "**/arvados/v1/container_requests/*" }, req => {
req.on('response', res => {
res.body.modified_by_user_uuid = "zzzzz-tpzed-000000000000000";
});
});
- cy.getAll("@containerRequest").then(function ([containerRequest]) {
- cy.goToPath(`/processes/${containerRequest.uuid}`);
- cy.get("[data-cy=process-runtime-status-retry-warning]", { timeout: 7000 }).should("contain", "Process retried 1 time");
- });
-
- cy.getAll("@containerRequest").then(function ([containerRequest]) {
- containerCount = 3;
- cy.goToPath(`/processes/${containerRequest.uuid}`);
- cy.get("[data-cy=process-runtime-status-retry-warning]", { timeout: 7000 }).should("contain", "Process retried 2 times");
- });
+ cy.getAll("@containerRequest", "@runningContainer").then(function ([containerRequest]) {
+ cy.goToPath(`/processes/${containerRequest.uuid}`);
+ cy.reload();
+ cy.get("[data-cy=process-runtime-status-retry-warning]", { timeout: 7000 }).should("contain", "Process retried 1 time")
+ }).as("retry1");
+
+ cy.getAll("@containerRequest", "@runningContainer", "@retry1").then(function ([containerRequest]) {
+ containerCount = 3;
+ cy.goToPath(`/processes/${containerRequest.uuid}`);
+ cy.reload();
+ cy.get("[data-cy=process-runtime-status-retry-warning]", { timeout: 7000 }).should("contain", "Process retried 2 times");
+ });
});
it("allows copying processes", function () {
// Import commands.js using ES2015 syntax:
import './commands'
+import "cypress-fail-fast";
// Alternatively you can use CommonJS syntax:
// require('./commands')
"css-loader": "^6.5.1",
"css-minimizer-webpack-plugin": "^3.2.0",
"cwlts": "1.15.29",
+ "cypress-fail-fast": "^7.1.0",
"date-fns": "^2.28.0",
"debounce": "1.2.0",
"dompurify": "^3.0.6",
css-minimizer-webpack-plugin: ^3.2.0
cwlts: 1.15.29
cypress: ^13.6.6
+ cypress-fail-fast: ^7.1.0
cypress-wait-until: ^3.0.1
date-fns: ^2.28.0
debounce: 1.2.0
languageName: node
linkType: hard
+"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
+ languageName: node
+ linkType: hard
+
"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
languageName: node
linkType: hard
-"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
- version: 4.1.2
- resolution: "chalk@npm:4.1.2"
- dependencies:
- ansi-styles: ^4.1.0
- supports-color: ^7.1.0
- checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
- languageName: node
- linkType: hard
-
"change-emitter@npm:^0.1.2":
version: 0.1.6
resolution: "change-emitter@npm:0.1.6"
languageName: node
linkType: hard
+"cypress-fail-fast@npm:^7.1.0":
+ version: 7.1.0
+ resolution: "cypress-fail-fast@npm:7.1.0"
+ dependencies:
+ chalk: 4.1.2
+ peerDependencies:
+ cypress: ">=8.0.0"
+ checksum: 0666d283fc61e015eb99b04047dc9ec796963f50e21acee8e6c0a5ff24fd79cfa54068361ffb05a8c576e71b646b0f86ab4793f91909fcc4ae19a772f113d397
+ languageName: node
+ linkType: hard
+
"cypress-wait-until@npm:^3.0.1":
version: 3.0.1
resolution: "cypress-wait-until@npm:3.0.1"