Socket
Socket
Sign inDemoInstall

@applitools/core-base

Package Overview
Dependencies
Maintainers
36
Versions
100
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@applitools/core-base - npm Package Compare versions

Comparing version 1.1.48 to 1.1.49

dist/open-functional-session.js

2

dist/core.js

@@ -7,2 +7,3 @@ "use strict";

const open_eyes_1 = require("./open-eyes");
const open_functional_session_1 = require("./open-functional-session");
const locate_1 = require("./locate");

@@ -20,2 +21,3 @@ const locate_text_1 = require("./locate-text");

openEyes: (0, open_eyes_1.makeOpenEyes)({ requests: coreRequests, concurrency, cwd, logger }),
openFunctionalSession: (0, open_functional_session_1.makeOpenFunctionalSession)({ requests: coreRequests, concurrency, cwd, logger }),
locate: (0, locate_1.makeLocate)({ requests: coreRequests, logger }),

@@ -22,0 +24,0 @@ locateText: (0, locate_text_1.makeLocateText)({ requests: coreRequests, logger }),

@@ -26,3 +26,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.makeEyesRequests = exports.makeCoreRequests = void 0;
exports.makeFunctionalSessionRequests = exports.makeEyesRequests = exports.makeCoreRequests = void 0;
const logger_1 = require("@applitools/logger");

@@ -45,2 +45,3 @@ const req_eyes_1 = require("./req-eyes");

openEyes,
openFunctionalSession,
locate,

@@ -149,2 +150,68 @@ locateText,

}
async function openFunctionalSession({ settings, logger = defaultLogger, }) {
var _a, _b, _c;
const agentId = `${defaultAgentId} ${settings.agentId ? `[${settings.agentId}]` : ''}`.trim();
const req = (0, req_eyes_1.makeReqEyes)({ config: { ...settings, agentId }, fetch, logger });
logger.log('Request "openFunctionalSession" called with settings', settings);
const accountPromise = getAccountInfoWithCache({ settings });
const initializedAt = new Date().toISOString();
const response = await req('/api/sessions/running', {
name: 'openFunctionalSession',
method: 'POST',
body: {
startInfo: {
agentId,
agentSessionId: settings.userTestId,
agentRunId: settings.userTestId,
sessionType: settings.sessionType,
appIdOrName: settings.appName,
scenarioIdOrName: settings.testName,
displayName: settings.displayName,
properties: settings.properties,
batchInfo: settings.batch && {
id: settings.batch.id,
name: settings.batch.name,
batchSequenceName: settings.batch.sequenceName,
startedAt: settings.batch.startedAt,
notifyOnCompletion: settings.batch.notifyOnCompletion,
properties: settings.batch.properties,
},
egSessionId: (_b = (_a = settings.environment) === null || _a === void 0 ? void 0 : _a.ecSessionId) !== null && _b !== void 0 ? _b : null,
environment: settings.environment &&
((_c = settings.environment.rawEnvironment) !== null && _c !== void 0 ? _c : {
os: settings.environment.os,
osInfo: settings.environment.osInfo,
hostingApp: settings.environment.hostingApp,
hostingAppInfo: settings.environment.hostingAppInfo,
deviceInfo: settings.environment.deviceName,
displaySize: settings.environment.viewportSize && utils.geometry.round(settings.environment.viewportSize),
inferred: settings.environment.userAgent && `useragent:${settings.environment.userAgent}`,
}),
timeout: settings.abortIdleTestTimeout,
nonVisual: true,
},
},
expected: [200, 201],
logger,
});
const test = await response.json().then(async (result) => {
var _a, _b;
const account = await accountPromise;
const test = {
testId: result.id,
userTestId: settings.userTestId,
batchId: (_b = (_a = settings.batch) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : result.batchId,
sessionId: result.sessionId,
appId: settings.appName,
resultsUrl: result.url,
initializedAt,
keepBatchOpen: !!settings.keepBatchOpen,
server: account.server,
account,
};
return test;
});
logger.log('Request "openFunctionalSession" finished successfully with body', test);
return makeFunctionalSessionRequests({ core, test, req, logger });
}
async function locate({ target, settings, logger = defaultLogger, }) {

@@ -523,2 +590,105 @@ const agentId = `${defaultAgentId} ${settings.agentId ? `[${settings.agentId}]` : ''}`.trim();

exports.makeEyesRequests = makeEyesRequests;
function makeFunctionalSessionRequests({ core, test, req, logger: defaultLogger, }) {
let resultsPromise = undefined;
const functionalSession = {
core,
test,
get running() {
return !resultsPromise;
},
report,
close,
abort,
getResults,
};
return functionalSession;
async function close({ settings, logger = defaultLogger, } = {}) {
logger.log(`Request "close" called for test ${test.testId} with settings`, settings);
if (resultsPromise) {
logger.log(`Request "close" called for test ${test.testId} that was already stopped`);
return;
}
resultsPromise = report({ settings, logger })
.then(() => {
var _a;
return req(`/api/sessions/running/${encodeURIComponent(test.testId)}`, {
name: 'close',
method: 'DELETE',
query: { aborted: false, nonVisualStatus: (_a = settings === null || settings === void 0 ? void 0 : settings.status) !== null && _a !== void 0 ? _a : 'Completed' },
expected: 200,
logger,
});
})
.then(async (response) => {
const result = await response.json();
result.userTestId = test.userTestId;
result.url = test.resultsUrl;
result.initializedAt = test.initializedAt;
result.keepIfDuplicate = test.keepIfDuplicate;
result.server = test.server;
logger.log('Request "close" finished successfully with body', result);
return [result];
});
return resultsPromise.then(() => undefined).catch(() => undefined);
}
async function abort({ settings, logger = defaultLogger, } = {}) {
logger.log(`Request "abort" called for test ${test.testId} with settings`, settings);
if (resultsPromise) {
logger.log(`Request "abort" called for test ${test.testId} that was already stopped`);
return;
}
resultsPromise = report({ settings, logger })
.then(() => req(`/api/sessions/running/${encodeURIComponent(test.testId)}`, {
name: 'abort',
method: 'DELETE',
query: {
aborted: true,
},
expected: 200,
logger,
}))
.then(async (response) => {
const result = await response.json();
result.userTestId = test.userTestId;
result.initializedAt = test.initializedAt;
result.keepIfDuplicate = test.keepIfDuplicate;
result.server = test.server;
logger.log('Request "abort" finished successfully with body', result);
return [result];
});
return resultsPromise.then(() => undefined).catch(() => undefined);
}
async function getResults({ settings, logger = defaultLogger, } = {}) {
logger.log(`Request "getResults" called for test ${test.testId} with settings`, settings);
if (!resultsPromise) {
logger.warn(`The test with id "${test.testId}" is going to be auto aborted`);
await abort({ settings, logger });
}
const results = await resultsPromise;
logger.log('Request "getResults" finished successfully with body', results);
return results;
}
async function report({ settings, logger = defaultLogger, }) {
logger.log(`Request "report" called for test ${test.testId} with settings`, settings);
if (!(settings === null || settings === void 0 ? void 0 : settings.testMetadata) || utils.types.isEmpty(settings.testMetadata))
return;
try {
await req(`/api/sessions/running/${encodeURIComponent(test.testId)}/selfhealdata`, {
name: 'reportSelfHealing',
method: 'PUT',
body: {
operations: settings.testMetadata.map(item => {
return { old: item === null || item === void 0 ? void 0 : item.originalSelector, new: item === null || item === void 0 ? void 0 : item.successfulSelector, timestamp: new Date().toISOString() };
}),
},
expected: 200,
logger,
});
}
catch (error) {
logger.warn(error);
}
}
}
exports.makeFunctionalSessionRequests = makeFunctionalSessionRequests;
function transformCheckOptions({ target, settings }) {

@@ -525,0 +695,0 @@ var _a, _b;

4

package.json
{
"name": "@applitools/core-base",
"version": "1.1.48",
"version": "1.1.49",
"homepage": "https://applitools.com",

@@ -55,3 +55,3 @@ "bugs": {

"@applitools/logger": "1.1.48",
"@applitools/req": "1.1.34",
"@applitools/req": "1.1.35",
"@applitools/utils": "1.3.32",

@@ -58,0 +58,0 @@ "abort-controller": "3.0.0",

import type { AbortSettings } from './types';
import { type Logger } from '@applitools/logger';
import { type AbortController } from 'abort-controller';
import { type EyesRequests } from './server/requests';
import { type EyesRequests, type FunctionalSessionRequests } from './server/requests';
type Options = {
requests: EyesRequests;
requests: EyesRequests | FunctionalSessionRequests;
done: () => void;

@@ -8,0 +8,0 @@ controller: AbortController;

import type { CloseSettings } from './types';
import { type Logger } from '@applitools/logger';
import { type EyesRequests } from './server/requests';
import { type EyesRequests, type FunctionalSessionRequests } from './server/requests';
type Options = {
requests: EyesRequests;
requests: EyesRequests | FunctionalSessionRequests;
done: () => void;

@@ -7,0 +7,0 @@ logger: Logger;

import type { GetResultsSettings, TestResult } from './types';
import { type Logger } from '@applitools/logger';
import { type EyesRequests } from './server/requests';
import { type EyesRequests, type FunctionalSessionRequests } from './server/requests';
type Options = {
requests: EyesRequests;
requests: EyesRequests | FunctionalSessionRequests;
logger: Logger;

@@ -7,0 +7,0 @@ };

@@ -1,2 +0,2 @@

import type { Core, Eyes, ServerSettings, OpenSettings, ReportSettings, TestInfo } from '../types';
import type { Core, Eyes, FunctionalSession, ServerSettings, OpenSettings, ReportSettings, VisualTest, FunctionalTest } from '../types';
import { type Fetch } from '@applitools/req';

@@ -7,2 +7,10 @@ import { type Logger } from '@applitools/logger';

export interface CoreRequests extends Core {
openEyes(options: {
settings: OpenSettings;
logger?: Logger;
}): Promise<EyesRequests>;
openFunctionalSession(options: {
settings: OpenSettings;
logger?: Logger;
}): Promise<FunctionalSessionRequests>;
getBatchBranches(options: {

@@ -17,6 +25,2 @@ settings: ServerSettings & {

}>;
openEyes(options: {
settings: OpenSettings;
logger?: Logger;
}): Promise<EyesRequests>;
}

@@ -30,2 +34,9 @@ export interface EyesRequests extends Eyes {

}
export interface FunctionalSessionRequests extends FunctionalSession {
readonly core: CoreRequests;
report(options: {
settings?: ReportSettings;
logger?: Logger;
}): Promise<void>;
}
export declare function makeCoreRequests({ agentId: defaultAgentId, fetch, logger, }: {

@@ -38,3 +49,3 @@ agentId: string;

core: CoreRequests;
test: TestInfo;
test: VisualTest;
req: ReqEyes;

@@ -44,1 +55,7 @@ upload: Upload;

}): EyesRequests;
export declare function makeFunctionalSessionRequests({ core, test, req, logger: defaultLogger, }: {
core: CoreRequests;
test: FunctionalTest;
req: ReqEyes;
logger: Logger;
}): FunctionalSessionRequests;

@@ -23,2 +23,6 @@ /// <reference types="node" />

}): Promise<Eyes>;
openFunctionalSession(options: {
settings: OpenSettings;
logger?: Logger;
}): Promise<FunctionalSession>;
locate<TLocator extends string>(options: {

@@ -42,3 +46,3 @@ target: Target;

logger?: Logger;
}): Promise<AccountInfo>;
}): Promise<Account>;
closeBatch(options: {

@@ -60,3 +64,3 @@ settings: MaybeArray<CloseBatchSettings>;

readonly core: Core;
readonly test: TestInfo;
readonly test: VisualTest;
readonly running: boolean;

@@ -86,3 +90,20 @@ check(options: {

}
export interface TestInfo {
export interface FunctionalSession {
readonly core: Core;
readonly test: FunctionalTest;
readonly running: boolean;
close(options?: {
settings?: CloseSettings;
logger?: Logger;
}): Promise<void>;
abort(options?: {
settings?: AbortSettings;
logger?: Logger;
}): Promise<void>;
getResults(options?: {
settings?: GetResultsSettings;
logger?: Logger;
}): Promise<TestResult[]>;
}
export interface VisualTest {
testId: string;

@@ -101,3 +122,3 @@ userTestId: string;

ufgServer: UFGServerSettings;
account: AccountInfo;
account: Account;
rendererId?: string;

@@ -110,2 +131,26 @@ rendererUniqueId?: string;

}
export interface FunctionalTest {
testId: string;
userTestId: string;
batchId: string;
sessionId: string;
appId: string;
resultsUrl: string;
initializedAt: string;
keepBatchOpen: boolean;
keepIfDuplicate: boolean;
server: ServerSettings;
account: Account;
}
export interface Account {
server: ServerSettings;
ufgServer: UFGServerSettings;
stitchingServiceUrl: string;
uploadUrl: string;
maxImageHeight: number;
maxImageArea: number;
rcaEnabled: boolean;
selfHealingEnabled: boolean;
ecEnabled: boolean;
}
export interface ServerSettings {

@@ -125,3 +170,2 @@ serverUrl: string;

}
type SessionType = 'SEQUENTIAL' | 'PROGRESSION';
type CustomProperty = {

@@ -139,3 +183,3 @@ name: string;

};
type Environment = {
export type Environment = {
os?: string;

@@ -163,3 +207,3 @@ osInfo?: string;

userTestId?: string;
sessionType?: SessionType;
sessionType?: 'SEQUENTIAL' | 'PROGRESSION';
properties?: CustomProperty[];

@@ -183,2 +227,3 @@ batch?: Batch;

removeSession?: boolean;
isFunctionalTest?: boolean;
}

@@ -226,12 +271,2 @@ export interface LocateSettings<TLocator extends string, TRegion = Region> extends ServerSettings, ImageSettings<TRegion> {

}
export interface AccountInfo {
server: ServerSettings;
ufgServer: UFGServerSettings;
rcaEnabled: boolean;
stitchingServiceUrl: string;
uploadUrl: string;
maxImageHeight: number;
maxImageArea: number;
selfHealingEnabled: boolean;
}
type OffsetRect = {

@@ -327,2 +362,3 @@ top?: number;

updateBaselineIfDifferent?: boolean;
status?: 'Passed' | 'Failed' | 'Completed';
/** @internal */

@@ -329,0 +365,0 @@ userCommandId?: string;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc