بنقرة واحدة
axon-ivy-test
Entry point for creating and updating tests. Use this skill when user asks to write/update/delete tests.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Entry point for creating and updating tests. Use this skill when user asks to write/update/delete tests.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Rules and best practices for Axon Ivy HTML Dialog implementations including PrimeFaces, PrimeFlex, CSS, JS, and Ivy components.
Rules and patterns for the `com.axonivy.utils.persistence` library — the Axon Ivy community helper around JPA. Covers `AuditableIdEntity`, `AuditableIdDAO`, `CriteriaQueryContext`, and `UpdateQueryContext`. Use whenever Java code in `src/` reads or writes data through a DAO that extends `AuditableIdDAO` or an entity that extends `AuditableIdEntity`.
Rules and patterns for creating, editing, reviewing, and fixing Axon Ivy workflow processes (.p.json files). Use this when working with any .p.json file — including checking existing processes for errors, reviewing script code, or fixing IvyScript issues.
Verification checklist for Axon Ivy process files (.p.json). Use this whenever a .p.json file is created, modified, or reviewed — either after axon-ivy-process skill, or when a user asks to check, verify, or fix a process file for errors.
Master router skill for all requirement clarification, create story, development, review, and testing tasks. Detects user intent and orchestrates the correct path using specialized skills and parallel subagents.
Rules and patterns for sending email from an Axon Ivy project. Covers sender / recipient resolution, subject and body templating, attachments, and the recommended builder pattern for one mail type per class. Use whenever Java code or a process step composes or sends an email.
| name | axon-ivy-test |
| description | Entry point for creating and updating tests. Use this skill when user asks to write/update/delete tests. |
Check if src_test/ folder exists and pom.xml has test dependency.
Look for in pom.xml:
<dependency>
<groupId>com.axonivy.ivy.api.test</groupId>
<artifactId>ivy-test-api</artifactId>
<scope>test</scope>
</dependency>
setup.md to add testing infrastructure. Stop here.ALWAYS do this before writing any test. Load investigate.md and follow its steps.
Scan existing tests to discover:
Test*.java vs *IT.java)src_test/@IvyTest, @IvyProcessTest, @RestResourceTest)RestResourceTest.java, ResourceResponder.java, LoggerAccess.java)*TestClient.java, InMemory*.java, Dummy*.java, Mock*.java)Record findings for use in subsequent steps.
Determine what the user wants to test by analyzing BOTH the user request AND the target code.
Target has no dependency on Ivy runtime, REST, or external APIs. Examples: data parsing, tree building, string formatting, event listeners with injected dependencies.
→ Load unit.md (Pure Unit Test section)
Target reads Ivy.var(), accesses CMS, or uses Ivy session — but does NOT call REST or execute processes.
→ Load unit.md (Ivy Unit Test section)
Target is a .p.json process OR user says "test this process".
Does NOT call external APIs.
→ Load process.md
Target calls external APIs (OpenAI, Azure, custom REST) but user wants fast, reliable, offline tests.
→ Load rest.md + mock.md + resource.md + fixture.md
→ Load combos.md for wiring guidance
User explicitly says "integration test", "e2e", "real API", or target is an *IT.java class.
→ Load integration.md + fixture.md + log.md
| Signal in target code | Intent |
|---|---|
No Ivy.* imports, pure Java | A |
Ivy.var(), Ivy.cms(), Ivy.session() | B |
.p.json file or BpmProcess reference | C |
@Path, @GET, @POST, REST client calls | D |
User says "integration", "e2e", class ends with IT | E |
When ambiguous, default to the simpler pattern (A over B, D over E).
After loading the primary pattern from Step 2, conditionally load these:
| Need | Load |
|---|---|
| Isolate with fake implementation (interface-based dep) | test-doubles.md |
| Build complex domain test objects | test-doubles.md (builder section) |
| Set Ivy variables for test | fixture.md |
| Mock external REST API | mock.md |
| Load JSON fixture data | resource.md |
| Assert log messages | log.md |
| Complex AssertJ chains | assert.md |
| Combining multiple patterns together | combos.md |
Use findings from Step 1 to ensure:
| Type | Name | Location |
|---|---|---|
| Unit / Process / REST test | Test<ClassName>.java | src_test/<package>/Test<ClassName>.java |
| Integration test | <ClassName>IT.java | src_test/<package>/<ClassName>IT.java |
| In-memory test double | InMemory<Interface>.java | src_test/<package>/InMemory<Interface>.java |
| Dummy provider | Dummy<Interface>.java | src_test/<package>/dummy/Dummy<Interface>.java |
| Mock handler | <Name>Chat.java | src_test/<package>/mock/<Name>Chat.java |
src_test/ folder existspom.xml has ivy-test-api dependency