проектные команды и ссылки на источник
- заведён internal/source: уровни ссылаются друг на друга путём на диске или git-репозиторием, ревизия закрепляется хвостом #ref; клон делается заново и удаляется, кэша нет - добавлены init, add, pull, list, check в проекте — манифест .conventions.toml, сборка копий по разу на компонент, маркер локальной части, READING.md рядом - проверки формы развязаны с набором: принимают lang.Vocabulary, а язык копии узнаётся по строке о версии — манифеста рядом с ней нет
This commit is contained in:
@@ -72,3 +72,31 @@ func TestUnknownVersionAndCode(t *testing.T) {
|
||||
t.Error("an unknown vocabulary was accepted without an error")
|
||||
}
|
||||
}
|
||||
|
||||
// A copy in a consuming repository carries no manifest, so the only thing that
|
||||
// says which words of it are normative is the line it names the language by.
|
||||
func TestRecognizeReadsTheLanguageOffTheVersionLine(t *testing.T) {
|
||||
ru, err := lang.Lookup(1, "ru")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
en, err := lang.Lookup(1, "en")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, want := range []lang.Vocabulary{ru, en} {
|
||||
got, ok := lang.Recognize(want.VersionLine())
|
||||
if !ok {
|
||||
t.Fatalf("the version line of %q was not recognized", want.Code)
|
||||
}
|
||||
if got.Code != want.Code || got.Version != want.Version {
|
||||
t.Errorf("read as %q version %d, expected %q version %d",
|
||||
got.Code, got.Version, want.Code, want.Version)
|
||||
}
|
||||
}
|
||||
|
||||
if _, ok := lang.Recognize("Обычная проза, ничего не объявляющая."); ok {
|
||||
t.Errorf("prose naming no words passed for a version line")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user