60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package db
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoadTargetsFromYAMLRespectsIsActive(t *testing.T) {
|
|
tempDir := t.TempDir()
|
|
dbPath := filepath.Join(tempDir, "test_targets_active.db")
|
|
yamlPath := filepath.Join(tempDir, "targets.yaml")
|
|
|
|
yamlContent := `targets:
|
|
- name: "Google Seattle"
|
|
target_url: "https://google.com/jobs"
|
|
platform: "google_jobs"
|
|
is_active: false
|
|
- name: "Apple Seattle"
|
|
target_url: "https://apple.com/jobs"
|
|
platform: "apple"
|
|
is_active: true
|
|
`
|
|
if err := os.WriteFile(yamlPath, []byte(yamlContent), 0644); err != nil {
|
|
t.Fatalf("failed to write yaml: %v", err)
|
|
}
|
|
|
|
database, err := InitDB(dbPath)
|
|
if err != nil {
|
|
t.Fatalf("failed to init db: %v", err)
|
|
}
|
|
defer func() { _ = database.Close() }()
|
|
|
|
if err := database.LoadTargetsFromYAML(yamlPath); err != nil {
|
|
t.Fatalf("LoadTargetsFromYAML failed: %v", err)
|
|
}
|
|
|
|
targets, err := database.GetAllTargets()
|
|
if err != nil {
|
|
t.Fatalf("GetAllTargets failed: %v", err)
|
|
}
|
|
|
|
if len(targets) != 2 {
|
|
t.Fatalf("expected 2 targets, got %d", len(targets))
|
|
}
|
|
|
|
for _, target := range targets {
|
|
if target.TargetURL == "https://google.com/jobs" {
|
|
if target.IsActive != false {
|
|
t.Errorf("expected Google target to have is_active=false, got %v", target.IsActive)
|
|
}
|
|
}
|
|
if target.TargetURL == "https://apple.com/jobs" {
|
|
if target.IsActive != true {
|
|
t.Errorf("expected Apple target to have is_active=true, got %v", target.IsActive)
|
|
}
|
|
}
|
|
}
|
|
}
|