cc-os/plugins/os-adr/tests/test_helper.rb

53 lines
1.1 KiB
Ruby
Raw Normal View History

require "minitest/autorun"
require "tmpdir"
require "fileutils"
require_relative "../lib/adr"
module AdrTestHelpers
PLUGIN_ROOT = File.expand_path("..", __dir__)
FIXTURES = File.join(__dir__, "fixtures")
# Yields a tmp project root containing an initialized docs/adr/ populated
# with the given ADR fixture contents (id => full file body).
def with_project(adrs = {})
Dir.mktmpdir do |root|
dir = File.join(root, "docs", "adr")
FileUtils.mkdir_p(dir)
adrs.each { |filename, body| File.write(File.join(dir, filename), body) }
yield root
end
end
def sample_adr(id: "0001", title: "Use Postgres", status: "Accepted", extra_frontmatter: "")
<<~MD
---
id: "#{id}"
date: 2026-07-03
status: #{status}
supersedes:
superseded-by:
affected-paths: [db/, lib/storage]
affected-components: [storage]
#{extra_frontmatter}---
# #{id} — #{title}
## Context
We need a database.
## Decision
Use Postgres.
## Consequences
Ops burden.
## Alternatives rejected
SQLite no concurrent writers.
MD
end
end