@applitools/core-base
Advanced tools
Comparing version 1.1.48 to 1.1.49
@@ -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; |
{ | ||
"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; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
122932
44
2347
11
+ Added@applitools/req@1.1.35(transitive)
- Removed@applitools/req@1.1.34(transitive)
Updated@applitools/req@1.1.35