AI Unified Process for the Vaadin/jOOQ stack - migrations, implementation, tests
87
92%
Does it follow best practices?
Impact
87%
1.17xAverage score across 15 eval scenarios
Low
Low-risk findings worth noting
Browserless test setup and test authoring
Correct groupId
100%
100%
Correct artifactId
0%
100%
Test scope
40%
100%
UseCase annotation exists
0%
100%
UseCase @Target METHOD
0%
100%
UseCase @Retention RUNTIME
0%
100%
UseCase @Documented
0%
100%
UseCase id attribute
0%
100%
UseCase scenario attribute
0%
100%
UseCase businessRules attribute
0%
100%
Test class name
0%
100%
Extends SpringBrowserlessTest
0%
100%
@SpringBootTest on class
0%
100%
@UseCase on each test method
0%
100%
Uses $view() or $() for component lookup
0%
100%
No Mockito usage
0%
100%
No @Transactional in test
100%
100%
Test data via Flyway
60%
100%
AssertJ assertions
0%
100%
Playwright end-to-end test automating a multi-use-case test case (TC-001)
Extends AbstractBasePlaywrightIT
100%
100%
@SpringBootTest RANDOM_PORT
100%
100%
Single test method for the whole flow
100%
100%
Step methods traceable to Flow rows
100%
100%
Test case ID in @DisplayName
0%
100%
getView returns first Flow step route
0%
100%
Navigates to the second view mid-flow
100%
100%
Test Data values used verbatim
100%
100%
Validation section asserted
100%
50%
No raw page.locator() calls
100%
100%
No Thread.sleep / waitForTimeout
100%
100%
Scoped lookups inside dialogs
100%
100%
Idempotent cleanup of test-created data only
62%
100%
Test class naming convention
100%
100%
Read-only coverage audit of a partly implemented and partly tested use case (UC-020)
No file was modified
100%
100%
Did not write the missing code or tests
100%
100%
Coverage matrix present
0%
77%
Matrix covers all seven main scenario steps
0%
66%
Matrix covers both alternative flows
0%
66%
Matrix covers both business rules
0%
66%
Matrix covers preconditions and postconditions
0%
60%
BR-001 reported as not implemented
0%
50%
A1 reported as untested
0%
50%
Disabled test recognized as covering nothing
0%
44%
BR-002 test gap reported
0%
50%
Reorder action reported as drift
0%
50%
Evidence given as file references
0%
42%
Status suggestion is justified and left to the user
0%
50%
Gaps name the closing skill
0%
40%
No claim of having run the tests
100%
60%
Playwright tests using Drama Finder element wrappers
Extends AbstractBasePlaywrightIT
100%
100%
@SpringBootTest RANDOM_PORT
100%
100%
No raw page.locator() calls
100%
100%
Drama Finder element wrappers used
100%
100%
ARIA/label-based lookups
100%
100%
No XPath selectors
100%
100%
No Thread.sleep / waitForTimeout
100%
100%
No getAttribute/isVisible in assertions
100%
75%
getTotalRowCount for grid count
100%
100%
@Nested with @DisplayName
100%
100%
Scoped lookup inside dialog
100%
100%
Validation assertion uses assertInvalid
100%
100%
Test class naming convention
100%
100%
Playwright end-to-end journey test for a patient-intake test case with scoped-label and cleanup-order traps
Extends AbstractBasePlaywrightIT
87%
100%
Single test method for the whole journey
100%
100%
Flow order and step traceability
100%
100%
Test case ID in @DisplayName
0%
100%
Dialog 'Name' field scoped, not the page filter
100%
100%
Test Data values used verbatim
100%
100%
DatePickerElement for Birth Date
100%
100%
Navigates between the two views mid-flow
75%
100%
Validation section asserted
100%
100%
Cleanup deletes appointment before patient
87%
100%
No raw page.locator() calls
100%
100%
No Thread.sleep / waitForTimeout
83%
100%
getTotalRowCount for grid counts
50%
100%
Test class naming convention
100%
100%
Flyway migration extension with sequences and FKs
Reservation file naming
100%
100%
Payment file naming
100%
100%
Version follows existing migrations
100%
100%
Reservation sequence
100%
100%
Payment sequence
100%
100%
Reservation uses sequence PK
100%
100%
Payment uses sequence PK
100%
100%
Reservation FK to guest
100%
100%
Reservation FK to room_type
100%
100%
Payment FK to reservation
100%
100%
No DROP TABLE statements
100%
100%
Dependency order respected
100%
100%
Extend Karibu test suite for archive use case
Karibu class naming
100%
100%
@UseCase on main scenario
100%
100%
@UseCase on A1 flow
100%
100%
LocatorJ usage
100%
100%
GridKt usage
90%
100%
expectNotifications usage
100%
100%
No Mockito
100%
100%
No @Transactional
100%
100%
@AfterEach scope
62%
100%
UI.getCurrent().navigate
100%
100%
Flyway migration from entity model
No auto-increment PKs
100%
100%
Sequences created
0%
100%
Sequence naming: room_type
0%
100%
Sequence naming: guest
0%
100%
Sequence naming: reservation
0%
100%
File naming convention
100%
100%
Next version is V002
100%
100%
Foreign key: room_type_id
100%
100%
Foreign key: guest_id
100%
100%
Table dependency order
100%
100%
No DROP TABLE
100%
100%
Browserless tests for ConfirmDialog and ContextMenu overlay interactions
Extends SpringBrowserlessTest
0%
0%
@SpringBootTest annotation
0%
0%
Class naming convention
100%
100%
@UseCase on test methods
25%
100%
@UseCase scenario matches spec
0%
100%
ConfirmDialog found with $()
100%
0%
confirm() used for confirmation
80%
100%
cancel() used for cancel flow
87%
100%
reject() used for archive flow
87%
100%
ContextMenu via tester methods
0%
100%
No Karibu imports
100%
100%
No Mockito usage
100%
100%
jOOQ Records.mapping vs fetchInto in Vaadin data layer
Records.mapping() for grid query
100%
100%
No fetchInto for projected DTO
100%
100%
Column order matches DTO constructor
100%
100%
fetchInto(Order.class) for full-row
100%
100%
No test class created
100%
100%
Data layer separate from view
100%
100%
Vaadin view exists
100%
100%
View wired to repository
100%
100%
Item count in projection
100%
100%
jOOQ projected query with Records.mapping()
Records.mapping() for projection
100%
100%
Constructor reference style
100%
100%
Column order matches constructor
100%
100%
Item count via aggregate
100%
100%
fetchInto for full-row fetch
100%
66%
No fetchInto for projected query
100%
100%
Sorted descending by created_at
100%
100%
No test classes created
100%
100%
Hilla React view with @BrowserCallable service over jOOQ
@BrowserCallable service delegating to repository
100%
100%
Records.mapping() for grid query
100%
100%
React view under src/main/frontend/views/
100%
100%
View uses generated TypeScript client
100%
100%
No fetchInto for projected DTO
100%
100%
Column order matches DTO constructor
100%
100%
No test class created
100%
100%
fetchInto(Product.class) for full-row
100%
100%
Data layer separate from service and view
100%
100%
Create Hilla frontend and backend tests for the manage tasks use case
Frontend file naming
0%
100%
Endpoint client mocked
100%
100%
RTL semantic queries and userEvent
100%
100%
Frontend A1 error flow
100%
100%
Mocked DTO shape
100%
100%
Backend class naming
20%
100%
@UseCase on backend tests
66%
100%
Service called as a bean
100%
100%
Backend A1 asserts EndpointException
100%
100%
No Mockito
100%
100%
No @Transactional and scoped cleanup
0%
100%
Playwright tests with scoped lookups and grid row count
No raw locators
100%
50%
Scoped dialog lookup
100%
100%
getTotalRowCount for grid count
100%
100%
No Thread.sleep / waitForTimeout
100%
100%
No getAttribute / isVisible in assertions
100%
100%
@Nested with @DisplayName
0%
100%
AbstractBasePlaywrightIT base class
100%
100%
@SpringBootTest annotation
57%
42%
getLocator vs getInputLocator distinction
100%
100%
Icon-only button via getByText
100%
100%
Drama Finder element wrappers
100%
100%
Test class naming convention
100%
100%
Browserless test authoring for Vaadin view
UseCase annotation created
14%
0%
UseCase annotation shape
100%
0%
Test class name pattern
0%
0%
Extends SpringBrowserlessTest
0%
0%
@SpringBootTest annotation
0%
0%
@UseCase on every test method
37%
0%
@UseCase scenario matches spec
0%
0%
@UseCase businessRules matches spec
0%
0%
$() used to find components
0%
0%
test() used for actions only
0%
0%
AssertJ assertions
100%
0%
No Mockito
0%
0%
No @Transactional
100%
0%
Flyway test migration file
88%
0%
Table of Contents