| 146 | } |
| 147 | |
| 148 | func TestReadSkill(t *testing.T) { |
| 149 | r := New(testFS()) |
| 150 | |
| 151 | data, err := r.ReadSkill("lark-calendar") |
| 152 | if err != nil { |
| 153 | t.Fatalf("ReadSkill error: %v", err) |
| 154 | } |
| 155 | if !strings.HasPrefix(string(data), "---\nname: lark-calendar") { |
| 156 | t.Errorf("unexpected content: %q", string(data)) |
| 157 | } |
| 158 | |
| 159 | _, err = r.ReadSkill("no-such-skill") |
| 160 | if err == nil { |
| 161 | t.Fatal("expected error for unknown skill") |
| 162 | } |
| 163 | var verr *errs.ValidationError |
| 164 | if !errors.As(err, &verr) { |
| 165 | t.Fatalf("expected *errs.ValidationError, got %T", err) |
| 166 | } |
| 167 | if !strings.Contains(verr.Message, `unknown skill "no-such-skill"`) { |
| 168 | t.Errorf("message: got %q", verr.Message) |
| 169 | } |
| 170 | |
| 171 | if _, err := r.ReadSkill("../etc"); err == nil { |
| 172 | t.Error("expected error for name with separator") |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | func TestReadReference(t *testing.T) { |
| 177 | r := New(testFS()) |