testcafe
Version:
Automated browser testing for the modern web development stack.
41 lines • 5.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProxyRoleProvider = exports.NativeAutomationRoleProvider = void 0;
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
const cookie_provider_1 = require("../native-automation/cookie-provider");
class RoleProviderBase {
constructor(testRun) {
this._testRun = testRun;
}
get session() {
return this._testRun.session;
}
}
class NativeAutomationRoleProvider extends RoleProviderBase {
constructor(testRun) {
super(testRun);
this._cookieProvider = new cookie_provider_1.CdpCookieProvider(testRun);
}
async getStateSnapshot() {
const cookies = await this._cookieProvider.getCookies([]);
return new testcafe_hammerhead_1.StateSnapshot(JSON.stringify(cookies), null);
}
async useStateSnapshot(stateSnapshot) {
const { cookies } = stateSnapshot;
await this._cookieProvider.deleteCookies();
if (cookies)
await this._cookieProvider.setCookies(JSON.parse(cookies), '');
this._testRun.saveStoragesSnapshot(stateSnapshot.storages);
}
}
exports.NativeAutomationRoleProvider = NativeAutomationRoleProvider;
class ProxyRoleProvider extends RoleProviderBase {
async getStateSnapshot() {
return this.session.getStateSnapshot();
}
async useStateSnapshot(stateSnapshot) {
await this.session.useStateSnapshot(stateSnapshot);
}
}
exports.ProxyRoleProvider = ProxyRoleProvider;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXJ1bi9yb2xlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFvRDtBQUVwRCwwRUFBeUU7QUFRekUsTUFBTSxnQkFBZ0I7SUFHbEIsWUFBYSxPQUFnQjtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFFRCxNQUFhLDRCQUE2QixTQUFRLGdCQUFnQjtJQUc5RCxZQUFhLE9BQWdCO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxtQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFELE9BQU8sSUFBSSxtQ0FBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBRSxhQUE0QjtRQUNoRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRWxDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUzQyxJQUFJLE9BQU87WUFDUCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNKO0FBekJELG9FQXlCQztBQUVELE1BQWEsaUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ25ELEtBQUssQ0FBQyxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBRSxhQUE0QjtRQUNoRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNKO0FBUkQsOENBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZVNuYXBzaG90IH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENkcENvb2tpZVByb3ZpZGVyIH0gZnJvbSAnLi4vbmF0aXZlLWF1dG9tYXRpb24vY29va2llLXByb3ZpZGVyJztcbmltcG9ydCBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuL3Nlc3Npb24tY29udHJvbGxlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVByb3ZpZGVyIHtcbiAgICB1c2VTdGF0ZVNuYXBzaG90OiAoc3RhdGVTbmFwc2hvdDogU3RhdGVTbmFwc2hvdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICBnZXRTdGF0ZVNuYXBzaG90OiAoKSA9PiBQcm9taXNlPFN0YXRlU25hcHNob3Q+O1xufVxuXG5jbGFzcyBSb2xlUHJvdmlkZXJCYXNlIHtcbiAgICBwcm90ZWN0ZWQgX3Rlc3RSdW46IFRlc3RSdW47XG5cbiAgICBjb25zdHJ1Y3RvciAodGVzdFJ1bjogVGVzdFJ1bikge1xuICAgICAgICB0aGlzLl90ZXN0UnVuID0gdGVzdFJ1bjtcbiAgICB9XG5cbiAgICBnZXQgc2Vzc2lvbiAoKTogU2Vzc2lvbkNvbnRyb2xsZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVzdFJ1bi5zZXNzaW9uO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5hdGl2ZUF1dG9tYXRpb25Sb2xlUHJvdmlkZXIgZXh0ZW5kcyBSb2xlUHJvdmlkZXJCYXNlIGltcGxlbWVudHMgUm9sZVByb3ZpZGVyIHtcbiAgICBwcml2YXRlIF9jb29raWVQcm92aWRlcjogQ2RwQ29va2llUHJvdmlkZXI7XG5cbiAgICBjb25zdHJ1Y3RvciAodGVzdFJ1bjogVGVzdFJ1bikge1xuICAgICAgICBzdXBlcih0ZXN0UnVuKTtcblxuICAgICAgICB0aGlzLl9jb29raWVQcm92aWRlciA9IG5ldyBDZHBDb29raWVQcm92aWRlcih0ZXN0UnVuKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRTdGF0ZVNuYXBzaG90ICgpOiBQcm9taXNlPFN0YXRlU25hcHNob3Q+IHtcbiAgICAgICAgY29uc3QgY29va2llcyA9IGF3YWl0IHRoaXMuX2Nvb2tpZVByb3ZpZGVyLmdldENvb2tpZXMoW10pO1xuXG4gICAgICAgIHJldHVybiBuZXcgU3RhdGVTbmFwc2hvdChKU09OLnN0cmluZ2lmeShjb29raWVzKSwgbnVsbCk7XG4gICAgfVxuXG4gICAgYXN5bmMgdXNlU3RhdGVTbmFwc2hvdCAoc3RhdGVTbmFwc2hvdDogU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGNvb2tpZXMgfSA9IHN0YXRlU25hcHNob3Q7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fY29va2llUHJvdmlkZXIuZGVsZXRlQ29va2llcygpO1xuXG4gICAgICAgIGlmIChjb29raWVzKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fY29va2llUHJvdmlkZXIuc2V0Q29va2llcyhKU09OLnBhcnNlKGNvb2tpZXMpLCAnJyk7XG5cbiAgICAgICAgdGhpcy5fdGVzdFJ1bi5zYXZlU3RvcmFnZXNTbmFwc2hvdChzdGF0ZVNuYXBzaG90LnN0b3JhZ2VzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm94eVJvbGVQcm92aWRlciBleHRlbmRzIFJvbGVQcm92aWRlckJhc2UgaW1wbGVtZW50cyBSb2xlUHJvdmlkZXIge1xuICAgIGFzeW5jIGdldFN0YXRlU25hcHNob3QgKCk6IFByb21pc2U8U3RhdGVTbmFwc2hvdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldFN0YXRlU25hcHNob3QoKTtcbiAgICB9XG5cbiAgICBhc3luYyB1c2VTdGF0ZVNuYXBzaG90IChzdGF0ZVNuYXBzaG90OiBTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi51c2VTdGF0ZVNuYXBzaG90KHN0YXRlU25hcHNob3QpO1xuICAgIH1cbn1cbiJdfQ==