Skip to content

Add live tests for issue tracker cards#4735

Merged
burieberry merged 11 commits into
mainfrom
cs-11067-live-tests-issue-tracker
May 11, 2026
Merged

Add live tests for issue tracker cards#4735
burieberry merged 11 commits into
mainfrom
cs-11067-live-tests-issue-tracker

Conversation

@burieberry
Copy link
Copy Markdown
Contributor

@burieberry burieberry commented May 8, 2026

This PR builds on #4650

  • Add live-card tests for software-factory issue-tracker cards
  • Clean up of experiments files
  • Add missing openCard action

Note: The file to review for this PR: packages/software-factory/realms/issue-tracker.test.gts
Everything else is from #4650 that's awaiting approval

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Preview deployments

Host Test Results

    1 files  ±0      1 suites  ±0   2h 3m 41s ⏱️ - 2m 2s
2 647 tests +3  2 632 ✅ +3  15 💤 ±0  0 ❌ ±0 
2 666 runs  +3  2 651 ✅ +3  15 💤 ±0  0 ❌ ±0 

Results for commit b208f5e. ± Comparison against earlier commit fc3f8b4.

Realm Server Test Results

    1 files  ±0      1 suites  ±0   13m 40s ⏱️ - 2m 31s
1 303 tests +6  1 303 ✅ +6  0 💤 ±0  0 ❌ ±0 
1 382 runs  +6  1 382 ✅ +6  0 💤 ±0  0 ❌ ±0 

Results for commit b208f5e. ± Comparison against earlier commit fc3f8b4.

@burieberry burieberry marked this pull request as ready for review May 11, 2026 13:46
@burieberry burieberry requested a review from a team May 11, 2026 13:46
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc3f8b4e96

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

relationships: projectId
? { project: { links: { self: projectId } } }
: {},
meta: { adoptsFrom: issueCodeRef },
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Create darkfactory issues from the board

When the board is used via the new darkfactory entrypoint (the prompts and fixtures now tell agents to adopt IssueTracker/Issue from darkfactory), the add-card flow still writes meta.adoptsFrom from the local issue-tracker module. The factory scheduler only searches for { module: this.darkfactoryModuleUrl, name: 'Issue' } in packages/software-factory/src/issue-scheduler.ts, so issues created with the board add button won't be picked up by the issue loop even though they appear on the board. The create flow should use the same module as the active darkfactory board/Project issue type instead of hard-coding issueCodeRef.

Useful? React with 👍 / 👎.

Comment thread packages/software-factory/prompts/bootstrap-implement.md
@habdelra
Copy link
Copy Markdown
Contributor

so these tests don't actually exercise the DOM of the issue tracker cards, shouldn't we be doing that in the tests? We can add a new playwright spec tests in software factory that do that

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the software-factory issue-tracker work (building on #4650) by adding realm “live tests” for IssueTracker board interactions, refactoring realm card definitions into separate files, and wiring additional IssueTracker functionality (notably open-card support) alongside some fixture and schema-test updates.

Changes:

  • Added QUnit live tests for IssueTracker kanban board interactions (placement, hide-empty, status edits, keyboard drag, add-card).
  • Refactored software-factory realm definitions: extracted AgentProfile/KnowledgeArticle/Comment/StatusPill/Kanban types, renamed IssueOption → IssueOptionField, and added new relationships (e.g. Issue.relatedKnowledge).
  • Updated fixtures, runtime schema tests, and Boxel UI kanban test selectors to support the new tests and structure.

Reviewed changes

Copilot reviewed 33 out of 36 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pnpm-lock.yaml Adds lock entry for ember-concurrency dependency.
packages/software-factory/package.json Adds ember-concurrency dependency for realm code usage.
packages/software-factory/tests/runtime-schema.spec.ts Adds schema fetch test for IssueTracker.
packages/software-factory/tests/factory-seed.spec.ts Waits for bootstrap seed issue to be indexed before reading it.
packages/software-factory/test-fixtures/darkfactory-adopter/Boards/demo-board.json Adds an adopter fixture IssueTracker board card.
packages/software-factory/src/factory-tool-builder.ts Updates tool/docs strings to include IssueTracker in tracker-schema card list.
packages/software-factory/src/factory-seed.ts Updates bootstrap seed instructions/acceptance criteria to include IssueTracker creation.
packages/software-factory/realm/tsconfig.json Expands TS paths/types/includes to support QUnit live tests and host/boxel-ui imports.
packages/software-factory/realm/status-pill.gts Adds reusable StatusPill component (Pill wrapper).
packages/software-factory/realm/knowledge-article.gts Extracts KnowledgeArticle card def from prior monolith.
packages/software-factory/realm/kanban-config.gts Updates to IssueOptionField and related types.
packages/software-factory/realm/kanban-column.gts Adds KanbanColumnField FieldDef + edit/embedded UI.
packages/software-factory/realm/kanban-board.gts Extracts KanbanBoardPlacement and imports it from new module.
packages/software-factory/realm/kanban-board-placement.gts New FieldDef for persisting kanban placements.
packages/software-factory/realm/issue-tracker.test.gts Adds live tests for IssueTracker board interactions.
packages/software-factory/realm/issue-tracker.gts Adds open-card action, refactors IssueTracker isolated view, and adds knowledge relationships.
packages/software-factory/realm/issue-option.gts Renames IssueOption to IssueOptionField and updates component types.
packages/software-factory/realm/darkfactory.gts Replaces monolithic card definitions with re-exports and keeps DarkFactory card.
packages/software-factory/realm/comment.gts Extracts Comment FieldDef into its own module.
packages/software-factory/realm/agent-profile.gts Extracts AgentProfile card def into its own module.
packages/software-factory/prompts/bootstrap-implement.md Updates bootstrap prompt to include IssueTracker board creation steps.
packages/software-factory/.agents/skills/software-factory-operations/SKILL.md Documents IssueTracker board JSON path/adoptsFrom.
packages/software-factory/.agents/skills/software-factory-bootstrap/SKILL.md Documents IssueTracker board creation in bootstrap flow.
packages/realm-server/scripts/bench-realm/fixtures/realm-snapshot/Boards/sticky-note.json Adds board fixture to bench realm snapshot.
packages/experiments-realm/Project/bc838c6e-6a12-4331-94ff-c7c3e7e96d0b.json Updates adoptsFrom.module path.
packages/experiments-realm/KanbanBoard/c19a0bfe-d6ee-4e87-8680-927813a59e08.json Updates adoptsFrom.module path.
packages/experiments-realm/IssueTracker/b97d905f-7cd7-4e21-ba07-b7163d188729.json Renames adoptsFrom.name to IssueTracker and updates module path.
packages/experiments-realm/Issue/hbs-6.json Adds relatedKnowledge relationship link and updates module path.
packages/experiments-realm/Issue/hbr-1.json Updates adoptsFrom.module path.
packages/experiments-realm/Issue/hbr-2.json Updates adoptsFrom.module path.
packages/experiments-realm/Issue/hbr-3.json Updates adoptsFrom.module path.
packages/experiments-realm/Issue/hbr-4.json Updates adoptsFrom.module path.
packages/experiments-realm/Issue/hbr-5.json Updates adoptsFrom.module path.
packages/boxel-ui/test-app/tests/integration/components/kanban-plane-test.gts Switches assertions to use new data-test hooks instead of CSS classes.
packages/boxel-ui/addon/src/components/kanban/plane-inner.gts Adds data-test hooks for over-WIP and empty-column elements.
packages/boxel-ui/addon/src/components/kanban/column-header.gts Adds data-test hooks for column name/WIP/add-button elements.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/software-factory/prompts/bootstrap-implement.md
Comment thread packages/software-factory/prompts/bootstrap-implement.md Outdated
Comment thread packages/software-factory/prompts/bootstrap-implement.md Outdated
Comment on lines +128 to +132
{
module: rri(`${sourceRealm}issue-tracker`),
name: 'IssueTracker',
},
);
@burieberry
Copy link
Copy Markdown
Contributor Author

burieberry commented May 11, 2026

so these tests don't actually exercise the DOM of the issue tracker cards, shouldn't we be doing that in the tests? We can add a new playwright spec tests in software factory that do that

This file is this for this PR specifically: realms/issue-tracker.test.gts

Everything else is from #4650 that's awaiting approval

@habdelra
Copy link
Copy Markdown
Contributor

habdelra commented May 11, 2026

so these tests don't actually exercise the DOM of the issue tracker cards, shouldn't we be doing that in the tests? We can add a new playwright spec tests in software factory that do that

This file is this for this PR specifically: realms/issue-tracker.test.gts

Everything else is from #4650 that's awaiting approval

one thing I i do that that more clear is used stacked PR, swhere the merge is into the parent PR--this it's more clear to see what specifically is different in the child PR. then right before you actually go to do the merge, you can use github UI to change the parent back to main.

@burieberry
Copy link
Copy Markdown
Contributor Author

so these tests don't actually exercise the DOM of the issue tracker cards, shouldn't we be doing that in the tests? We can add a new playwright spec tests in software factory that do that

This file is this for this PR specifically: realms/issue-tracker.test.gts
Everything else is from #4650 that's awaiting approval

one thing I i do that that more clear is used stacked PR, swhere the merge is into the parent PR--this it's more clear to see what specifically is different in the child PR. then right before you actually go to do the merge, you can use github UI to change the parent back to main.

Good idea, makes sense. Thanks

setupAcceptanceTestRealm,
SYSTEM_CARD_FIXTURE_CONTENTS,
visitOperatorMode,
} from '@cardstack/host/tests/helpers';
Copy link
Copy Markdown
Contributor

@habdelra habdelra May 11, 2026

Choose a reason for hiding this comment

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

This is the first instance of using the test realm in the software factory. up to this point we've been testing with an actual realm with a full boxel stack (via the test-harness). so this isn't really as faithful in terms of a real realm as the playwright specs are. but i think it's ok, as you'll be able to use ember test helpers in this test which are much more powerful and concise for DOM testing than playwright. but probably we need to be clear around the rules for when we want to actually use a real live complete boxel environment for testing vs uses an in-browser realm like this tests does. if you want to spell out the rules for when to use in-browser realms vs real node realms that would be cool.

also i noticed that we don't have @cardstack/host in our package.json's devDependencies. probably we need that. i think it happens to be transitively included right now which is why its working, but we should actually spell it out in the package.json

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added missing dependencies, updated readme about tests, and resolved relevant copilot catches

@burieberry burieberry force-pushed the cs-11067-live-tests-issue-tracker branch from fc3f8b4 to b208f5e Compare May 11, 2026 15:34
@burieberry burieberry merged commit e24ffef into main May 11, 2026
80 of 81 checks passed
@burieberry burieberry deleted the cs-11067-live-tests-issue-tracker branch May 11, 2026 16:12
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.

3 participants