fa19e1c68b
* Fix qodercli-skills-migration: migrate QodercliIntegration to SkillsIntegration Apply the remediation from the bug assessment on issue #4199. Qoder IDE 1.24+ dropped .qoder/commands/ scanning in favour of the skills layout (.qoder/skills/{skill-name}/SKILL.md). Migrated QodercliIntegration from MarkdownIntegration to SkillsIntegration, updating config[commands_subdir] to 'skills' and registrar_config[dir] to '.qoder/skills' with extension '/SKILL.md'. Updated tests to use SkillsIntegrationTests base mixin. Refs #4199 Assisted-by: GitHub Copilot (model: claude-sonnet-4.6, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(qodercli): resolve failing skills-flag test and slash invocation Builds on the qodercli->SkillsIntegration migration (PR #4205). Qoder IDE 1.24+ is always skills-based, so it should not expose a --skills toggle. Override the inherited SkillsIntegrationTests.test_options_include_skills_flag to skip (mirroring Grok/Zed/Droid) and add a test asserting no --skills option, plus a requires_cli/name/multi_install_safe check. Also add "qodercli" to ALWAYS_SLASH_AGENTS so hooks and next-steps render the hyphenated /speckit-<name> invocation instead of the legacy dotted /speckit.<name> form. Fixes the single failing test reported for #4199. Assisted-by: GitHub Copilot (model: claude-opus-4.8, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 43394151-ce2a-432d-9cc5-88f587d1b570 * fix(qodercli): migrate legacy extension commands Retire old flat Qoder extension commands only after their replacement skills are successfully written. Cover old-layout upgrades and both slash invocation states, and update the integration reference path. Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Manfred Riem <15701806+mnriem@users.noreply.github.com> Copilot-Session: 43394151-ce2a-432d-9cc5-88f587d1b570
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
"""Tests for QodercliIntegration."""
|
|
|
|
import pytest
|
|
|
|
from specify_cli.integrations import get_integration
|
|
|
|
from .test_integration_base_skills import SkillsIntegrationTests
|
|
|
|
|
|
class TestQodercliIntegration(SkillsIntegrationTests):
|
|
KEY = "qodercli"
|
|
FOLDER = ".qoder/"
|
|
COMMANDS_SUBDIR = "skills"
|
|
REGISTRAR_DIR = ".qoder/skills"
|
|
|
|
def test_options_include_skills_flag(self):
|
|
"""Not applicable — Qoder IDE 1.24+ is always skills-based."""
|
|
pytest.skip(
|
|
"Qoder is always skills-based and does not expose a --skills option"
|
|
)
|
|
|
|
def test_options_do_not_include_skills_flag(self):
|
|
"""Qoder is always skills-based; no --skills option is exposed."""
|
|
i = get_integration(self.KEY)
|
|
assert i is not None
|
|
opts = i.options()
|
|
skills_opts = [o for o in opts if o.name == "--skills"]
|
|
assert len(skills_opts) == 0, (
|
|
"Qoder is always skills-based and should not expose a --skills option"
|
|
)
|
|
|
|
def test_requires_cli_is_true(self):
|
|
"""Qoder CLI is a CLI-based agent; requires_cli must remain True."""
|
|
i = get_integration(self.KEY)
|
|
assert i is not None
|
|
assert i.config is not None
|
|
assert i.config["requires_cli"] is True
|
|
assert i.config["name"] == "Qoder CLI"
|
|
assert i.multi_install_safe is True
|