UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

71 lines 9.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequestId = exports.createRequestPausedEventForResponse = exports.isPreflightRequest = exports.isRequestPausedEvent = exports.isUnauthorized = exports.isRequest = exports.dispatchEvent = exports.navigateTo = exports.redirect = void 0; const http_status_codes_1 = require("http-status-codes"); const headers_1 = require("./headers"); const types_1 = require("../types"); const errors_1 = require("../errors"); async function redirect(client, requestId, url) { await client.Fetch.fulfillRequest({ requestId, responseCode: http_status_codes_1.StatusCodes.MOVED_PERMANENTLY, responseHeaders: [ { name: 'location', value: url }, ], }); } exports.redirect = redirect; async function navigateTo(client, url) { await client.Page.navigate({ url }); } exports.navigateTo = navigateTo; async function dispatchEvent(client, type, options) { switch (+type) { case types_1.EventType.Mouse: await client.Input.dispatchMouseEvent(options); break; case types_1.EventType.Keyboard: await client.Input.dispatchKeyEvent(options); break; case types_1.EventType.InsertText: await client.Input.insertText({ text: options.text }); break; case types_1.EventType.Touch: await client.Input.dispatchTouchEvent(options); break; default: throw (0, errors_1.unknownCDPEventType)(options.type); } } exports.dispatchEvent = dispatchEvent; function isRequest(event) { return event.responseStatusCode === void 0; } exports.isRequest = isRequest; function isUnauthorized(statusCode) { return statusCode === 401; } exports.isUnauthorized = isUnauthorized; function isRequestPausedEvent(val) { return val && val.frameId && typeof val.request === 'object'; } exports.isRequestPausedEvent = isRequestPausedEvent; function isPreflightRequest(event) { return event.request.method === 'OPTIONS'; } exports.isPreflightRequest = isPreflightRequest; function createRequestPausedEventForResponse(mockedResponse, requestEvent) { return Object.assign({}, requestEvent, { responseStatusCode: mockedResponse.statusCode, responseHeaders: (0, headers_1.convertToHeaderEntries)(mockedResponse.headers), }); } exports.createRequestPausedEventForResponse = createRequestPausedEventForResponse; function getRequestId(event) { if (isRequestPausedEvent(event)) // NOTE: the `networkId` field can be missing return event.networkId || event.requestId; return event.frame.loaderId; } exports.getRequestId = getRequestId; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3V0aWxzL2NkcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBZ0Q7QUFLaEQsdUNBQW1EO0FBQ25ELG9DQUFxQztBQUNyQyxzQ0FBZ0Q7QUFHekMsS0FBSyxVQUFVLFFBQVEsQ0FBRSxNQUFtQixFQUFFLFNBQWlCLEVBQUUsR0FBVztJQUMvRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzlCLFNBQVM7UUFDVCxZQUFZLEVBQUssK0JBQVcsQ0FBQyxpQkFBaUI7UUFDOUMsZUFBZSxFQUFFO1lBQ2IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7U0FDbkM7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBUkQsNEJBUUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLE1BQW1CLEVBQUUsR0FBVztJQUM5RCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLE9BQVk7SUFDbkYsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNYLEtBQUssaUJBQVMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNO1FBQ1YsS0FBSyxpQkFBUyxDQUFDLFFBQVE7WUFDbkIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsVUFBVTtZQUNyQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsS0FBSztZQUNoQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsTUFBTTtRQUNWO1lBQ0ksTUFBTSxJQUFBLDRCQUFtQixFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFqQkQsc0NBaUJDO0FBRUQsU0FBZ0IsU0FBUyxDQUFFLEtBQXlCO0lBQ2hELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxVQUFrQjtJQUM5QyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUUsR0FBUTtJQUMxQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUM7QUFDakUsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUUsS0FBeUI7SUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7QUFDOUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUUsY0FBbUMsRUFBRSxZQUFnQztJQUN0SCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRTtRQUNuQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsVUFBVTtRQUM3QyxlQUFlLEVBQUssSUFBQSxnQ0FBc0IsRUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0tBQ3JFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFMRCxrRkFLQztBQUVELFNBQWdCLFlBQVksQ0FBRSxLQUErQztJQUN6RSxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQztRQUMzQiw2Q0FBNkM7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBbUIsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRXhELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDaEMsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2VMaWtlIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBjb252ZXJ0VG9IZWFkZXJFbnRyaWVzIH0gZnJvbSAnLi9oZWFkZXJzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHVua25vd25DRFBFdmVudFR5cGUgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWRpcmVjdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgcmVxdWVzdElkOiBzdHJpbmcsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY2xpZW50LkZldGNoLmZ1bGZpbGxSZXF1ZXN0KHtcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICByZXNwb25zZUNvZGU6ICAgIFN0YXR1c0NvZGVzLk1PVkVEX1BFUk1BTkVOVExZLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2xvY2F0aW9uJywgdmFsdWU6IHVybCB9LFxuICAgICAgICBdLFxuICAgIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUbyAoY2xpZW50OiBQcm90b2NvbEFwaSwgdXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjbGllbnQuUGFnZS5uYXZpZ2F0ZSh7IHVybCB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnQgKGNsaWVudDogUHJvdG9jb2xBcGksIHR5cGU6IEV2ZW50VHlwZSwgb3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoICgrdHlwZSkge1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5Nb3VzZTpcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5JbnB1dC5kaXNwYXRjaE1vdXNlRXZlbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuS2V5Ym9hcmQ6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hLZXlFdmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5JbnNlcnRUZXh0OlxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LklucHV0Lmluc2VydFRleHQoeyB0ZXh0OiBvcHRpb25zLnRleHQgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuVG91Y2g6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hUb3VjaEV2ZW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyB1bmtub3duQ0RQRXZlbnRUeXBlKG9wdGlvbnMudHlwZSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50LnJlc3BvbnNlU3RhdHVzQ29kZSA9PT0gdm9pZCAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmF1dGhvcml6ZWQgKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlID09PSA0MDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RQYXVzZWRFdmVudCAodmFsOiBhbnkpOiB2YWwgaXMgUmVxdWVzdFBhdXNlZEV2ZW50IHtcbiAgICByZXR1cm4gdmFsICYmIHZhbC5mcmFtZUlkICYmIHR5cGVvZiB2YWwucmVxdWVzdCA9PT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZWZsaWdodFJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnQucmVxdWVzdC5tZXRob2QgPT09ICdPUFRJT05TJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RQYXVzZWRFdmVudEZvclJlc3BvbnNlIChtb2NrZWRSZXNwb25zZTogSW5jb21pbmdNZXNzYWdlTGlrZSwgcmVxdWVzdEV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBSZXF1ZXN0UGF1c2VkRXZlbnQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0RXZlbnQsIHtcbiAgICAgICAgcmVzcG9uc2VTdGF0dXNDb2RlOiBtb2NrZWRSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6ICAgIGNvbnZlcnRUb0hlYWRlckVudHJpZXMobW9ja2VkUmVzcG9uc2UuaGVhZGVycyksXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0SWQgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQgfCBGcmFtZU5hdmlnYXRlZEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaXNSZXF1ZXN0UGF1c2VkRXZlbnQoZXZlbnQpKVxuICAgICAgICAvLyBOT1RFOiB0aGUgYG5ldHdvcmtJZGAgZmllbGQgY2FuIGJlIG1pc3NpbmdcbiAgICAgICAgcmV0dXJuIGV2ZW50Lm5ldHdvcmtJZCBhcyBzdHJpbmcgfHwgZXZlbnQucmVxdWVzdElkO1xuXG4gICAgcmV0dXJuIGV2ZW50LmZyYW1lLmxvYWRlcklkO1xufVxuIl19