OxL Reference

tests/fixtures.oxl

oxl
use super.model { Item, Money, Sku, UserId }
use std.rpc { withMeta }

// `asUser(id) { … }` в Стандарте — функция std.test (V.5); std.test её не содержит (DEVIATIONS.md #7),
// поэтому здесь: блок выполняется с заголовком `x-oxl-user`, как будто его прислал клиент.
pub fn asUser<T, effect F>(id: UserId, body: fn() -> T F) -> T  F {
  var meta: Map<str, str> = Map.new()
  meta.insert("x-oxl-user", "{id.raw}")
  withMeta(meta, body)
}

// Товар для тестов (V.5: константа TEST_ITEM)
pub static TEST_ITEM: frozen Item = testItem("BOOK-1", 1)

pub fn testItem(sku: str, qty: u32) -> Item {
  Item{ sku: Sku.from(sku)!, title: "Test item", price: Money.rub(10), qty: qty }
}

Source: examples/shop/tests/fixtures.oxl