fix(skills): preserve deleted default repositories (#5356)

* fix(skills): preserve deleted default repositories

* fix(skills): persist default repo initialization state
This commit is contained in:
Allen Xu
2026-07-17 15:51:29 +08:00
committed by GitHub
parent 1c0ee0c58a
commit edea624a27
2 changed files with 48 additions and 18 deletions
+32
View File
@@ -151,6 +151,38 @@ fn normalize_default(default: &Option<String>) -> Option<String> {
.map(|s| s.trim_matches('\'').trim_matches('"').to_string())
}
#[test]
fn deleted_default_skill_repo_is_not_restored() {
let db = Database::memory().expect("create memory db");
assert_eq!(db.init_default_skill_repos().expect("initialize repos"), 4);
for repo in db.get_skill_repos().expect("get initialized repos") {
db.delete_skill_repo(&repo.owner, &repo.name)
.expect("delete repo");
}
assert!(db.get_skill_repos().expect("get deleted repos").is_empty());
assert_eq!(
db.init_default_skill_repos().expect("reinitialize repos"),
0
);
assert!(db.get_skill_repos().expect("get repos").is_empty());
}
#[test]
fn existing_skill_repo_selection_is_not_supplemented() {
let db = Database::memory().expect("create memory db");
let default_store = crate::services::skill::SkillStore::default();
db.save_skill_repo(&default_store.repos[0])
.expect("save existing repo");
assert_eq!(db.init_default_skill_repos().expect("initialize repos"), 0);
assert_eq!(db.get_skill_repos().expect("get repos").len(), 1);
assert!(db
.get_bool_flag("default_skill_repos_initialized")
.expect("get initialized flag"));
}
#[test]
fn schema_migration_sets_user_version_when_missing() {
let conn = Connection::open_in_memory().expect("open memory db");