cumulocity-cypress
Version:
Cypress commands for Cumulocity IoT
39 lines (38 loc) • 1.47 kB
JavaScript
import { isVersionSatisfyingRequirements, } from "../../shared/versioning";
import * as semver from "semver";
import { getShellVersionFromEnv, getSystemVersionFromEnv } from "../utils";
const { _ } = Cypress;
if (Cypress.semver == null) {
Cypress.semver = semver;
}
beforeEach(function () {
if (Cypress.env("C8Y_IGNORE_REQUIRES_SKIP") == null &&
// backward compatibility
Cypress.env("C8Y_PACT_IGNORE_VERSION_SKIP") == null &&
isSystemVersionSatisfyingCurrentTestRequirements() === false) {
this.skip();
}
});
/**
* Checks if `Cypress.config().requires` matches environment for the current test.
* @returns `true` if the system version satisfies the requirements of the current test, `false` otherwise.
*/
export function isSystemVersionSatisfyingCurrentTestRequirements() {
const requires = Cypress.config().requires;
if (requires == null)
return true;
if (_.isArrayLike(requires)) {
return isVersionSatisfyingRequirements(getSystemVersionFromEnv(), requires);
}
else {
let systemResult = true;
if (requires.system != null) {
systemResult = isVersionSatisfyingRequirements(getSystemVersionFromEnv(), requires.system);
}
let shellResult = true;
if (requires.shell != null) {
shellResult = isVersionSatisfyingRequirements(getShellVersionFromEnv(), requires.shell);
}
return systemResult && shellResult;
}
}