Documentation
¶
Overview ¶
Package publicreadfixture — фикстуры доставки стадии S5 (kaname#856) и их законные близнецы с ВЫЧИСЛЕННОЙ дельтой.
Приёмка: docs/engineering/acceptance/anonymous-and-authenticated-are-subject-classes.md, П6, SC-60…73.
Зачем отдельный пакет, а не по копии в каждой пробе ¶
Фикстура новой редакции манифеста registry нужна пробам ПЯТИ пакетов сразу (manifest, modelrender, modelcompose, reconcile, access_binding). Копия в каждом — пять мест об одном предмете; разойдясь, они дали бы пробы, зелёные по разным манифестам. Так же устроен `catalogfixture`.
Близнец строится ПРАВКОЙ, а дельту считает пакет, а не автор ¶
Отрицательному кейсу положен положительный близнец, отличающийся ровно одним фактом. Объявление «отличается одним» здесь не принимается на веру: всякий близнец строится из документа-основы заменой, и Delta сверяет вычисленную разницу строк с объявленной. Близнец, меняющий два факта, отвергается раньше, чем проба дойдёт до испытуемого: вердикта держателя он не даёт.
Index ¶
- Constants
- func Delta(base, twin []byte) (removed, added []string)
- func KeyMovedToRepositories(doc []byte) ([]byte, error)
- func OneWordInRegistriesNote(doc []byte) ([]byte, error)
- func OnlyPublicReadRole(doc []byte) ([]byte, error)
- func Read(name string) ([]byte, error)
- func WithKeyValue(doc []byte, value string) ([]byte, error)
- func WithoutKey(doc []byte) ([]byte, error)
- func WithoutRoles(doc []byte) ([]byte, error)
Constants ¶
const ( // NewEditionFile — манифест registry новой редакции (kacho#3274): ключ на // `registries` и раздел `roles` с ролью `registry.public.read`. NewEditionFile = "registry.public-read-fixture.yaml" // PriorEditionFile — раздел `resources` манифеста registry kacho @a95248464. PriorEditionFile = "registry.prior-edition-fixture.yaml" // ProbemodFile — модуль, отличный от registry (SC-65 «И»). ProbemodFile = "probemod.public-read-fixture.yaml" // ChildrenProbemodFile — модуль трёх уровней родства (П3 приёмки // `nested-rule-reaches-descendants-of-a-named-container.md`, kaname#874): // глубину вложенного правила утверждают на нём (ND-08). ChildrenProbemodFile = "probemod.children-fixture.yaml" )
Имена файлов фикстур в `internal/manifest/testdata`.
const ( PublicReadRoleName = "registry.public.read" PublicReadRoleID = "rolb1325b011aa17211d" )
PublicReadRoleName / PublicReadRoleID — роль Р9 п. 4 и её id ('rol' || substr(md5(имя), 1, 17)).
const (
Key = "publicReadToChildren"
)
Ключ и его единственная законная форма (Р9 «Способ»: ключ либо отсутствует, либо равен true).
Variables ¶
This section is empty.
Functions ¶
func Delta ¶
Delta — разница двух документов построчно: строки, которых нет во втором (removed), и строки, которых нет в первом (added). Порядок — порядок появления. Повторяющиеся строки считаются кратностью.
func KeyMovedToRepositories ¶
KeyMovedToRepositories — третья форма SC-70 (в): ключ стоит на `repositories` (`resources[1]`) вместо `registries`. Один факт — ресурс, на котором стоит ключ: строка ключа уходит из одного ресурса и встаёт в другой.
func OneWordInRegistriesNote ¶
OneWordInRegistriesNote — третья форма SC-70 (г): в авторском примечании ресурса `registries` изменено одно слово. Дельта — одна строка заменена одной, и отличаются они ровно одним словом.
func OnlyPublicReadRole ¶
OnlyPublicReadRole — документ, в разделе `roles` которого осталась одна роль `registry.public.read`: вычеркнуты пробные роли kaname#874, стоящие после неё (их kacho#3274 не вносит). Это редакция ровно в том составе, в каком её доставляет kacho#3274: правило `[get, list]` над `registries` с вложенным `[get, list]` над `repositories`.
Нужен пробам, чьи числа — свойство этой одной роли: пробные роли добавили бы к переписи свои пары, и число мерило бы состав фикстуры, а не предмет.
func WithKeyValue ¶
WithKeyValue — близнец «ключ равен <value>» (SC-71 (в): `false`). Дельта — одна строка заменена одной.
func WithoutKey ¶
WithoutKey — близнец «ключ отсутствует»: вычеркнута ровно одна строка ключа. Дельта сверяется: удалена одна строка, добавлено ноль.
func WithoutRoles ¶
WithoutRoles — документ без раздела `roles` (всё от строки `roles:` до конца). Нужен там, где близнецу положено нести ровно прежний состав ролей.
Types ¶
This section is empty.