publicreadfixture

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

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

View Source
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`.

View Source
const (
	PublicReadRoleName = "registry.public.read"
	PublicReadRoleID   = "rolb1325b011aa17211d"
)

PublicReadRoleName / PublicReadRoleID — роль Р9 п. 4 и её id ('rol' || substr(md5(имя), 1, 17)).

View Source
const (
	Key = "publicReadToChildren"
)

Ключ и его единственная законная форма (Р9 «Способ»: ключ либо отсутствует, либо равен true).

Variables

This section is empty.

Functions

func Delta

func Delta(base, twin []byte) (removed, added []string)

Delta — разница двух документов построчно: строки, которых нет во втором (removed), и строки, которых нет в первом (added). Порядок — порядок появления. Повторяющиеся строки считаются кратностью.

func KeyMovedToRepositories

func KeyMovedToRepositories(doc []byte) ([]byte, error)

KeyMovedToRepositories — третья форма SC-70 (в): ключ стоит на `repositories` (`resources[1]`) вместо `registries`. Один факт — ресурс, на котором стоит ключ: строка ключа уходит из одного ресурса и встаёт в другой.

func OneWordInRegistriesNote

func OneWordInRegistriesNote(doc []byte) ([]byte, error)

OneWordInRegistriesNote — третья форма SC-70 (г): в авторском примечании ресурса `registries` изменено одно слово. Дельта — одна строка заменена одной, и отличаются они ровно одним словом.

func OnlyPublicReadRole

func OnlyPublicReadRole(doc []byte) ([]byte, error)

OnlyPublicReadRole — документ, в разделе `roles` которого осталась одна роль `registry.public.read`: вычеркнуты пробные роли kaname#874, стоящие после неё (их kacho#3274 не вносит). Это редакция ровно в том составе, в каком её доставляет kacho#3274: правило `[get, list]` над `registries` с вложенным `[get, list]` над `repositories`.

Нужен пробам, чьи числа — свойство этой одной роли: пробные роли добавили бы к переписи свои пары, и число мерило бы состав фикстуры, а не предмет.

func Read

func Read(name string) ([]byte, error)

Read — байты фикстуры по имени файла.

func WithKeyValue

func WithKeyValue(doc []byte, value string) ([]byte, error)

WithKeyValue — близнец «ключ равен <value>» (SC-71 (в): `false`). Дельта — одна строка заменена одной.

func WithoutKey

func WithoutKey(doc []byte) ([]byte, error)

WithoutKey — близнец «ключ отсутствует»: вычеркнута ровно одна строка ключа. Дельта сверяется: удалена одна строка, добавлено ноль.

func WithoutRoles

func WithoutRoles(doc []byte) ([]byte, error)

WithoutRoles — документ без раздела `roles` (всё от строки `roles:` до конца). Нужен там, где близнецу положено нести ровно прежний состав ролей.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL