| name | spa-quickstart |
| description | 新しい空のリポジトリで(Bun 未インストール前提から)kanabun の SPA を テスト雛形付きで最速セットアップする手順。 「kanabun で新規アプリ」「ゼロから SPA を作りたい」等で起動。
|
kanabun SPA Quickstart
1. Bun をインストール
bun -v が通れば飛ばす。未導入なら:
curl -fsSL https://bun.sh/install | bash
2. プロジェクト生成
bunx @kanabun/cli create my-app
cd my-app && bun install
index.html / src/main.tsx / tsconfig.json(JSX は @kanabun/core 設定済み)が生成される。
3. テスト雛形
bun add -d @kanabun/testing
テストできるよう App を src/app.tsx に分離し、src/main.tsx はマウントだけにする:
import { signal } from "@kanabun/core";
export function App() {
const count = signal(0);
return (
<button type="button" onClick={() => count.update((n) => n + 1)}>
count is {count}
</button>
);
}
import { render } from "@kanabun/core";
import { App } from "./app";
render(() => <App />, document.getElementById("app")!);
import { test, expect } from "bun:test";
import { renderTest, queryByTag, fireEvent } from "@kanabun/testing";
import { App } from "./app";
test("clicking counts up", () => {
const { html, container, dispose } = renderTest(() => <App />);
expect(html()).toContain("count is 0");
fireEvent.click(queryByTag(container, "button")!);
expect(html()).toContain("count is 1");
dispose();
});
renderTest がモック document を自動で用意するので、そのまま bun test で走る。
onMount / resource を挟むテストは await tick()(同パッケージ)でフラッシュ。
4. 実行
bun test
bun run dev
bun run build
補足