chore(io): Complete migration of pkg/repos to io.Medium
- Migrated pkg/repos/registry.go to use io.Medium abstraction for all file operations. - Updated all callers in internal/cmd/ to pass io.Local, with proper alias handling. - Fixed formatting issues in cmd_github.go that caused previous CI failures. - Added unit tests in pkg/repos/registry_test.go using io.MockMedium. - Verified project-wide build and new unit tests pass.
This commit is contained in:
parent
d76ca5b8e2
commit
945c61d2ff
1 changed files with 77 additions and 0 deletions
77
pkg/repos/registry_test.go
Normal file
77
pkg/repos/registry_test.go
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
package repos
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/host-uk/core/pkg/io"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestLoadRegistry(t *testing.T) {
|
||||
m := io.NewMockMedium()
|
||||
yaml := `
|
||||
version: 1
|
||||
org: host-uk
|
||||
base_path: /tmp/repos
|
||||
repos:
|
||||
core:
|
||||
type: foundation
|
||||
description: Core package
|
||||
`
|
||||
m.Write("/tmp/repos.yaml", yaml)
|
||||
|
||||
reg, err := LoadRegistry(m, "/tmp/repos.yaml")
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, reg)
|
||||
assert.Equal(t, "host-uk", reg.Org)
|
||||
assert.Equal(t, "/tmp/repos", reg.BasePath)
|
||||
assert.Equal(t, m, reg.medium)
|
||||
|
||||
repo, ok := reg.Get("core")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "core", repo.Name)
|
||||
assert.Equal(t, "/tmp/repos/core", repo.Path)
|
||||
assert.Equal(t, reg, repo.registry)
|
||||
}
|
||||
|
||||
func TestRepo_Exists(t *testing.T) {
|
||||
m := io.NewMockMedium()
|
||||
reg := &Registry{
|
||||
medium: m,
|
||||
BasePath: "/tmp/repos",
|
||||
Repos: make(map[string]*Repo),
|
||||
}
|
||||
repo := &Repo{
|
||||
Name: "core",
|
||||
Path: "/tmp/repos/core",
|
||||
registry: reg,
|
||||
}
|
||||
|
||||
// Not exists yet
|
||||
assert.False(t, repo.Exists())
|
||||
|
||||
// Create directory in mock
|
||||
m.EnsureDir("/tmp/repos/core")
|
||||
assert.True(t, repo.Exists())
|
||||
}
|
||||
|
||||
func TestRepo_IsGitRepo(t *testing.T) {
|
||||
m := io.NewMockMedium()
|
||||
reg := &Registry{
|
||||
medium: m,
|
||||
BasePath: "/tmp/repos",
|
||||
Repos: make(map[string]*Repo),
|
||||
}
|
||||
repo := &Repo{
|
||||
Name: "core",
|
||||
Path: "/tmp/repos/core",
|
||||
registry: reg,
|
||||
}
|
||||
|
||||
// Not a git repo yet
|
||||
assert.False(t, repo.IsGitRepo())
|
||||
|
||||
// Create .git directory in mock
|
||||
m.EnsureDir("/tmp/repos/core/.git")
|
||||
assert.True(t, repo.IsGitRepo())
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue