Core node acceptance
Purpose
This patch is complete when the bus-gx module exposes the library-only
Core foundation through github.com/busdk/bus-gx/pkg/gx and
the module checks prove the public contract.
Files
The patch initializes these public implementation files:
| Path | Purpose |
|---|---|
go.mod |
Go module github.com/busdk/bus-gx. |
pkg/gx/node.go |
Node, shared interfaces, VNode, and constructors. |
pkg/gx/props.go |
Props validation and deterministic attribute rendering. |
pkg/gx/render.go |
Deterministic escaped HTML renderer. |
pkg/gx/validate.go |
Strict node, tag, and child validation. |
pkg/gx/gx_test.go |
Unit tests for the v0.1.1 public contract. |
tests/e2e.sh |
Module e2e smoke for the library-only renderer. |
Checks
Run the checks from the bus-gx module root:
make fmt
make test
make lint
make check
make check formats, vets, lints, runs package tests, builds the library-only
module, and runs the e2e smoke. A successful library build prints that there is
no cmd/bus-gx/main.go; that is expected in this version because no bus gx
CLI exists yet.
Unit tests must cover escaped text, deterministic attribute order, boolean
attributes, omitted false/null props, invalid attributes, invalid tags, invalid
prop values, strict kind-specific VNode validation, nil inputs,
defensive VNode copies, fragment rendering, the Renderer
interface, and the default RenderHTML function.