Skip to content

Migrate playwright to euri-dsl module and update dependencies, configurations, and package structures.#6

Merged
violabs-josh merged 13 commits into
mainfrom
claude/merge-main-locator-scope-MtZjD
Apr 11, 2026
Merged

Migrate playwright to euri-dsl module and update dependencies, configurations, and package structures.#6
violabs-josh merged 13 commits into
mainfrom
claude/merge-main-locator-scope-MtZjD

Conversation

@violabs-josh
Copy link
Copy Markdown
Collaborator

No description provided.

violabs-josh and others added 9 commits March 30, 2026 21:11
…aywrightVersionTest` to align with `euri-dsl` module.
…just build configurations for `euri-dsl`.
… related configurations for Playwright support. Optimize resource management and build structure. Add `theatre` module.
…nused imports in `BrowserLaunchConfig`. Update tests to reflect new `waitUntil` approach.
…eration`) and `theatre` module. Refactor runtime DSL implementations for improved configurability and annotation usage.
… Update `DragToOperation` and remove extensive legacy tests from `PageScopeTest`.
… to BrowserContextScope

Merge origin/main into feature branch. Key changes:
- Upgrade konstellation-dsl 2.0.10->2.0.12 and konstellation-meta-dsl 1.0.14->1.0.15
- Add Kotlin enum wrappers (Role, BrowserColorScheme, PageLoadState, ScreenshotType,
  WaitUntil) in euri-dsl/enums package, replacing direct Playwright enum usage
- Add @InjectDslMethod annotations to BrowserContextScope
- Update LocatorScope and GetByRoleOperation to use Role enum instead of AriaRole
- Resolve modify/delete conflicts for playwright/ files moved to euri-dsl/
- Note: @InjectDslMethod cannot be added to LocatorScope or PlaywrightRuntime
  because they use @GeneratedDsl with references to KSP-generated types, causing
  circular dependency errors during KSP processing

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
…slMethod annotations

The generated LocatorScopeDslBuilder was unused. Switching to @EuriDsl
bypasses KSP processing, allowing @InjectDslMethod on all methods without
circular dependency errors from KSP-generated types.

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

Code Coverage - Root

Total Project Coverage NaN%

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 7, 2026

Codecov Report

❌ Patch coverage is 98.37775% with 14 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...g/khorum/oss/euri/dsl/runtime/PlaywrightRuntime.kt 67.74% 6 Missing and 4 partials ⚠️
...tlin/org/khorum/oss/euri/dsl/runtime/FrameScope.kt 96.92% 2 Missing ⚠️
...otlin/org/khorum/oss/euri/dsl/runtime/PageScope.kt 96.92% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

claude added 3 commits April 7, 2026 06:05
The getByRole method mirrors Playwright's API which requires many optional
parameters for ARIA role matching.

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
Cover PlaywrightVersion version comparison logic, enum conversions,
locator operation options, config mappings, and LocatorScope actions
(dragTo, setInputFiles, and/or filters).

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
… 99.7% line coverage

Exercise operation default constructor values (bypassing DslBuilder),
null childScope branches for GetBy*/Selector/Filter operations, optional
block parameters in LocatorScope, and additional version comparison cases.

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
@GeneratedDsl
data class NavigationConfig(
val url: String,
@DefaultValue("LOAD") val waitUntil: String = WaitUntilState.LOAD.name,
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change enum part of the library


@GeneratedDsl
data class ScreenshotConfig(
@DefaultValue("PNG") val type: String = "PNG",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used?

…enable PageScope/FrameScope/PlaywrightRuntime

- Replace string-based enum fields with proper Kotlin enums using @DefaultEnum
  annotation on BrowserContextConfig.colorScheme, NavigationConfig.waitUntil,
  and ScreenshotConfig.type
- Make PlaywrightConfig<T> and LocatorOperation functional interfaces (SAM)
- Uncomment and redesign PageScope with @EuriDsl/@InjectDslMethod, adapting
  locator methods to work with LocatorScope(MutableList<LocatorOperation>)
- Uncomment and redesign FrameScope with @EuriDsl/@InjectDslMethod
- Uncomment BrowserContextScope.newPage and PlaywrightRuntime page/execute
- Add comprehensive tests for PageScope, FrameScope, and PlaywrightRuntime
- Update detekt baseline for new scope classes

https://claude.ai/code/session_01TmGtF6ihVxhMtjSqcNu4r1
@sonarqubecloud
Copy link
Copy Markdown

@violabs-josh violabs-josh merged commit 3a12035 into main Apr 11, 2026
7 checks passed
@violabs-josh violabs-josh deleted the claude/merge-main-locator-scope-MtZjD branch April 11, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants