This commit is contained in:
2025-12-16 11:09:13 +01:00
parent 8ed6ba1fd1
commit ce82b7822b
64 changed files with 521 additions and 328 deletions

View File

@@ -1,7 +1,7 @@
import { describe, expect, test } from 'vitest'
import { OverlayAction, ActionAck } from '../../../../core/automation/application/ports/IOverlaySyncPort'
import { IAutomationEventPublisher, AutomationEvent } from '../../../../core/automation/application/ports/IAutomationEventPublisher'
import { IAutomationLifecycleEmitter, LifecycleCallback } from '../../../../core/automation/infrastructure/adapters/IAutomationLifecycleEmitter'
import { IAutomationLifecycleEmitter, LifecycleCallback } from '../../../../core/automation/infrastructure//IAutomationLifecycleEmitter'
import { OverlaySyncService } from '../../../../core/automation/application/services/OverlaySyncService'
class MockLifecycleEmitter implements IAutomationLifecycleEmitter {

View File

@@ -1,6 +1,6 @@
import { describe, expect, test } from 'vitest'
import { OverlayAction } from '../../../../core/automation/application/ports/OverlaySyncPort'
import { IAutomationLifecycleEmitter, LifecycleCallback } from '../../../../core/automation/infrastructure/adapters/IAutomationLifecycleEmitter'
import { IAutomationLifecycleEmitter, LifecycleCallback } from '../../../../core/automation/infrastructure//IAutomationLifecycleEmitter'
import { OverlaySyncService } from '../../../../core/automation/application/services/OverlaySyncService'
class MockLifecycleEmitter implements IAutomationLifecycleEmitter {

View File

@@ -3,9 +3,9 @@ import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import {
FixtureServer,
PlaywrightAutomationAdapter,
} from 'core/automation/infrastructure/adapters/automation';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
} from 'core/automation/infrastructure//automation';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
describe('Real Playwright hosted-session smoke (fixtures, steps 27)', () => {
let server: FixtureServer;

View File

@@ -2,7 +2,7 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { DIContainer } from '../../../apps/companion/main/di-container';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import type { HostedSessionConfig } from '@gridpilot/automation/domain/types/HostedSessionConfig';
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure/adapters/automation';
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure//automation';
describe('Companion UI - hosted workflow via fixture-backed real stack', () => {
let container: DIContainer;

View File

@@ -2,12 +2,12 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import {
PlaywrightAutomationAdapter,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import {
IRACING_SELECTORS,
IRACING_TIMEOUTS,
} from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
} from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
const shouldRun = process.env.HOSTED_REAL_E2E === '1';
const describeMaybe = shouldRun ? describe : describe.skip;

View File

@@ -2,12 +2,12 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import {
PlaywrightAutomationAdapter,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import {
IRACING_SELECTORS,
IRACING_TIMEOUTS,
} from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
} from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
const shouldRun = process.env.HOSTED_REAL_E2E === '1';

View File

@@ -4,12 +4,12 @@ import path from 'path';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import {
PlaywrightAutomationAdapter,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import {
IRACING_SELECTORS,
IRACING_TIMEOUTS,
} from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
} from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
const shouldRun = process.env.HOSTED_REAL_E2E === '1';
const describeMaybe = shouldRun ? describe : describe.skip;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 2 create race', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 3 race information', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 4 server details', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 5 set admins', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 6 admins', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 7 time limits', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 8 cars', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 13 track options', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 14 time of day', () => {
let harness: StepHarness;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import type { StepHarness } from '../support/StepHarness';
import { createStepHarness } from '../support/StepHarness';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
describe('Step 15 weather', () => {
let harness: StepHarness;

View File

@@ -1,5 +1,5 @@
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import type { PlaywrightAutomationAdapter } from 'core/automation/infrastructure/adapters/automation';
import type { PlaywrightAutomationAdapter } from 'core/automation/infrastructure//automation';
import type { AutomationResult } from 'core/automation/application/ports/AutomationResults';
export function assertAutoNavigationConfig(config: Record<string, unknown>): void {

View File

@@ -3,8 +3,8 @@ import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import {
PlaywrightAutomationAdapter,
FixtureServer,
} from 'core/automation/infrastructure/adapters/automation';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
} from 'core/automation/infrastructure//automation';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
export interface StepHarness {
server: FixtureServer;

View File

@@ -2,9 +2,9 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import {
PlaywrightAutomationAdapter,
FixtureServer,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
import { executeStepWithAutoNavigationGuard } from '../support/AutoNavGuard';
describe('Hosted validator guards (fixture-backed, real stack)', () => {

View File

@@ -2,10 +2,10 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import {
PlaywrightAutomationAdapter,
FixtureServer,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { executeStepWithAutoNavigationGuard } from '../support/AutoNavGuard';
describe('Workflow hosted session autonav slice (fixture-backed, real stack)', () => {

View File

@@ -2,12 +2,12 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import {
PlaywrightAutomationAdapter,
FixtureServer,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import { InMemorySessionRepository } from 'core/automation/infrastructure/repositories/InMemorySessionRepository';
import { AutomationEngineAdapter } from 'core/automation/infrastructure/adapters/automation/engine/AutomationEngineAdapter';
import { AutomationEngineAdapter } from 'core/automation/infrastructure//automation/engine/AutomationEngineAdapter';
import { StartAutomationSessionUseCase } from 'core/automation/application/use-cases/StartAutomationSessionUseCase';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
describe('Workflow hosted session end-to-end (fixture-backed, real stack)', () => {
let server: FixtureServer;

View File

@@ -2,10 +2,10 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import {
PlaywrightAutomationAdapter,
FixtureServer,
} from 'core/automation/infrastructure/adapters/automation';
} from 'core/automation/infrastructure//automation';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { IRACING_SELECTORS } from 'core/automation/infrastructure/adapters/automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure/adapters/logging/PinoLogAdapter';
import { IRACING_SELECTORS } from 'core/automation/infrastructure//automation/dom/IRacingSelectors';
import { PinoLogAdapter } from 'core/automation/infrastructure//logging/PinoLogAdapter';
describe('Workflow steps 79 cars flow (fixture-backed, real stack)', () => {
let adapter: PlaywrightAutomationAdapter;

View File

@@ -1,6 +1,6 @@
import { describe, test, expect, beforeEach, vi } from 'vitest';
import type { Page } from 'playwright';
import { AuthenticationGuard } from '@gridpilot/automation/infrastructure/adapters/automation/auth/AuthenticationGuard';
import { AuthenticationGuard } from '@gridpilot/automation/infrastructure//automation/auth/AuthenticationGuard';
describe('AuthenticationGuard', () => {
let mockPage: Page;

View File

@@ -9,7 +9,7 @@ vi.mock('electron', () => ({
},
}));
import { ElectronCheckoutConfirmationAdapter } from '@gridpilot/automation/infrastructure/adapters/ipc/ElectronCheckoutConfirmationAdapter';
import { ElectronCheckoutConfirmationAdapter } from '@gridpilot/automation/infrastructure//ipc/ElectronCheckoutConfirmationAdapter';
import { CheckoutPrice } from '@gridpilot/automation/domain/value-objects/CheckoutPrice';
import { CheckoutState } from '@gridpilot/automation/domain/value-objects/CheckoutState';
import { ipcMain } from 'electron';

View File

@@ -1,9 +1,9 @@
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import type { Page, BrowserContext } from 'playwright';
import { PlaywrightAuthSessionService } from '../../../../core/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService';
import type { PlaywrightBrowserSession } from '../../../../core/automation/infrastructure/adapters/automation/core/PlaywrightBrowserSession';
import type { SessionCookieStore } from '../../../../core/automation/infrastructure/adapters/automation/auth/SessionCookieStore';
import type { IPlaywrightAuthFlow } from '../../../../core/automation/infrastructure/adapters/automation/auth/PlaywrightAuthFlow';
import { PlaywrightAuthSessionService } from '../../../../core/automation/infrastructure//automation/auth/PlaywrightAuthSessionService';
import type { PlaywrightBrowserSession } from '../../../../core/automation/infrastructure//automation/core/PlaywrightBrowserSession';
import type { SessionCookieStore } from '../../../../core/automation/infrastructure//automation/auth/SessionCookieStore';
import type { IPlaywrightAuthFlow } from '../../../../core/automation/infrastructure//automation/auth/PlaywrightAuthFlow';
import type { LoggerPort as Logger } from '../../../../core/automation/application/ports/LoggerPort';
import { AuthenticationState } from '@gridpilot/automation/domain/value-objects/AuthenticationState';
import { Result } from '../../../../core/shared/result/Result';

View File

@@ -1,13 +1,13 @@
import { describe, it, expect, vi } from 'vitest';
import type { Page, Locator } from 'playwright';
import { PlaywrightAuthSessionService } from '../../../../core/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService';
import { PlaywrightAuthSessionService } from '../../../../core/automation/infrastructure//automation/auth/PlaywrightAuthSessionService';
import { AuthenticationState } from '@gridpilot/automation/domain/value-objects/AuthenticationState';
import { BrowserAuthenticationState } from '@gridpilot/automation/domain/value-objects/BrowserAuthenticationState';
import type { LoggerPort as Logger } from '../../../../core/automation/application/ports/LoggerPort';
import type { Result } from '../../../../core/shared/result/Result';
import type { PlaywrightBrowserSession } from '../../../../core/automation/infrastructure/adapters/automation/core/PlaywrightBrowserSession';
import type { SessionCookieStore } from '../../../../core/automation/infrastructure/adapters/automation/auth/SessionCookieStore';
import type { IPlaywrightAuthFlow } from '../../../../core/automation/infrastructure/adapters/automation/auth/PlaywrightAuthFlow';
import type { PlaywrightBrowserSession } from '../../../../core/automation/infrastructure//automation/core/PlaywrightBrowserSession';
import type { SessionCookieStore } from '../../../../core/automation/infrastructure//automation/auth/SessionCookieStore';
import type { IPlaywrightAuthFlow } from '../../../../core/automation/infrastructure//automation/auth/PlaywrightAuthFlow';
describe('PlaywrightAuthSessionService.verifyPageAuthentication', () => {
function createService(deps: {

View File

@@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach } from 'vitest';
import { SessionCookieStore } from '@gridpilot/automation/infrastructure/adapters/automation/auth/SessionCookieStore';
import { SessionCookieStore } from '@gridpilot/automation/infrastructure//automation/auth/SessionCookieStore';
import type { Cookie } from 'playwright';
const logger = console as any;

View File

@@ -4,9 +4,9 @@ import { configureDIContainer, resetDIContainer } from "../../../apps/companion/
import { DI_TOKENS } from "../../../apps/companion/main/di-tokens";
import { OverlaySyncService } from "@gridpilot/automation/application/services/OverlaySyncService";
import { LoggerPort } from "@gridpilot/automation/application/ports/LoggerPort";
import { IAutomationLifecycleEmitter, LifecycleCallback } from "@gridpilot/automation/infrastructure/adapters/IAutomationLifecycleEmitter";
import { IAutomationLifecycleEmitter, LifecycleCallback } from "@gridpilot/automation/infrastructure//IAutomationLifecycleEmitter";
import { AutomationEventPublisherPort, AutomationEvent } from "@gridpilot/automation/application/ports/AutomationEventPublisherPort";
import { ConsoleLogAdapter } from "@gridpilot/automation/infrastructure/adapters/logging/ConsoleLogAdapter";
import { ConsoleLogAdapter } from "@gridpilot/automation/infrastructure//logging/ConsoleLogAdapter";
import { describe, it, expect, beforeEach, afterEach, vi, SpyInstance } from 'vitest';
describe("OverlaySyncService Integration with ConsoleLogAdapter", () => {

View File

@@ -87,7 +87,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter({
@@ -111,7 +111,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter({
@@ -135,7 +135,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter({
@@ -164,7 +164,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter({
@@ -185,7 +185,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter({
@@ -228,7 +228,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
};
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
adapter = new PlaywrightAutomationAdapter(
@@ -259,7 +259,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
const userDataDir = path.join(process.cwd(), 'test-browser-data');
@@ -290,7 +290,7 @@ describe('Browser Mode Integration - GREEN Phase', () => {
configurable: true
});
const { PlaywrightAutomationAdapter } = await import(
'core/automation/infrastructure/adapters/automation'
'core/automation/infrastructure//automation'
);
const { BrowserModeConfigLoader } = await import(
'../../../core/automation/infrastructure/config/BrowserModeConfig'

View File

@@ -1,6 +1,6 @@
import { describe, it, expect, beforeEach, vi } from 'vitest';
import { Result } from '../../../core/shared/result/Result';
import { CheckoutPriceExtractor } from '../../../core/automation/infrastructure/adapters/automation/CheckoutPriceExtractor';
import { CheckoutPriceExtractor } from '../../../core/automation/infrastructure//automation/CheckoutPriceExtractor';
import { CheckoutStateEnum } from '@gridpilot/automation/domain/value-objects/CheckoutState';
/**

View File

@@ -3,7 +3,7 @@
*/
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { FixtureServer, getAllStepFixtureMappings, PlaywrightAutomationAdapter } from 'core/automation/infrastructure/adapters/automation';
import { FixtureServer, getAllStepFixtureMappings, PlaywrightAutomationAdapter } from 'core/automation/infrastructure//automation';
declare const getComputedStyle: any;
declare const document: any;

View File

@@ -1,5 +1,5 @@
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
import { MockBrowserAutomationAdapter } from 'core/automation/infrastructure/adapters/automation';
import { MockBrowserAutomationAdapter } from 'core/automation/infrastructure//automation';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
describe('MockBrowserAutomationAdapter Integration Tests', () => {

View File

@@ -1,6 +1,6 @@
import { describe, test, expect } from 'vitest'
import type { Page } from 'playwright'
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure/adapters/automation'
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure//automation'
describe('CarsFlow integration', () => {
test('adapter emits panel-attached then action-started then action-complete for performAddCar', async () => {

View File

@@ -4,7 +4,7 @@ import type { AutomationEvent } from 'core/automation/application/ports/IAutomat
import type {
IAutomationLifecycleEmitter,
LifecycleCallback,
} from 'core/automation/infrastructure/adapters/IAutomationLifecycleEmitter';
} from 'core/automation/infrastructure//IAutomationLifecycleEmitter';
import type {
OverlayAction,
ActionAck,

View File

@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import { DIContainer } from '../../../..//apps/companion/main/di-container';
import type { HostedSessionConfig } from '@gridpilot/automation/domain/types/HostedSessionConfig';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure/adapters/automation';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure//automation';
describe('companion start automation - browser mode refresh wiring', () => {
const originalEnv = { ...process.env };

View File

@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import { DIContainer } from '../../../..//apps/companion/main/di-container';
import type { HostedSessionConfig } from '@gridpilot/automation/domain/types/HostedSessionConfig';
import { StepId } from '@gridpilot/automation/domain/value-objects/StepId';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure/adapters/automation';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure//automation';
describe('companion start automation - browser not connected at step 1', () => {
const originalEnv = { ...process.env };

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
import { DIContainer } from '../../../..//apps/companion/main/di-container';
import type { HostedSessionConfig } from '@gridpilot/automation/domain/types/HostedSessionConfig';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure/adapters/automation';
import { PlaywrightAutomationAdapter } from '../../../..//core/automation/infrastructure//automation';
describe('companion start automation - browser connection failure before steps', () => {
const originalEnv = { ...process.env };

View File

@@ -5,9 +5,9 @@ import { CheckAuthenticationUseCase } from '../../core/automation/application/us
import { InitiateLoginUseCase } from '../../core/automation/application/use-cases/InitiateLoginUseCase';
import { ClearSessionUseCase } from '../../core/automation/application/use-cases/ClearSessionUseCase';
import { ConfirmCheckoutUseCase } from '../../core/automation/application/use-cases/ConfirmCheckoutUseCase';
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure/adapters/automation';
import { PlaywrightAutomationAdapter } from 'core/automation/infrastructure//automation';
import { InMemorySessionRepository } from '../../core/automation/infrastructure/repositories/InMemorySessionRepository';
import { NoOpLogAdapter } from '../../core/automation/infrastructure/adapters/logging/NoOpLogAdapter';
import { NoOpLogAdapter } from '../../core/automation/infrastructure//logging/NoOpLogAdapter';
// Mock Electron's app module
vi.mock('electron', () => ({

View File

@@ -1,6 +1,6 @@
import { describe, it, expect, afterEach, beforeAll, afterAll } from 'vitest';
import { PlaywrightAutomationAdapter, FixtureServer } from 'core/automation/infrastructure/adapters/automation';
import { NoOpLogAdapter } from '../../core/automation/infrastructure/adapters/logging/NoOpLogAdapter';
import { PlaywrightAutomationAdapter, FixtureServer } from 'core/automation/infrastructure//automation';
import { NoOpLogAdapter } from '../../core/automation/infrastructure//logging/NoOpLogAdapter';
describe('Playwright Adapter Smoke Tests', () => {
let adapter: PlaywrightAutomationAdapter | undefined;