Skip to content

開発・テスト ​

セットアップ ​

bash
go mod download

ローカル実行 ​

bash
go run ./cmd/server

DISCORD_PUBLIC_KEY を未設定のままにすると署名検証がスキップされるため、実際のDiscordからのWebhookなしに curl で POST / を叩いて挙動を確認できます。ただし Google Sheets への書き込みが発生する経路(打刻系のハンドラ)を試す場合は、有効な SPREADSHEET_ID とサービスアカウント認証情報が必要です。

テスト ​

bash
go test ./...

現状、以下にユニット・統合テストがあります。

  • internal/httpserver — Echoルーティングを通した POST / の実挙動(ping応答など)
  • internal/keymanager — 時刻・日付パース、Sheetsのスキャンロジック(貸出状況判定・最新イベント検索)の純粋関数部分、.env 書き戻し、アラートストアのCRUD

Sheets APIやDiscord APIへの実際のネットワーク呼び出しはテスト対象にしていません。ネットワーク呼び出しの手前にあるロジック(例: findBorrowStatusInLogRows や findMostRecentLogRow)は、APIレスポンスの形([][]any)をそのまま受け取る純粋関数として切り出されており、モックなしでテストできます。

Lint / フォーマット ​

bash
gofmt -l .
go vet ./...

ドキュメントサイト(VitePress)の開発 ​

bash
npm install
npm run docs:dev

http://localhost:5173 でホットリロード付きプレビューが開きます。ページは docs/ 配下の Markdown ファイルです。ナビゲーション・サイドバーの構成は docs/.vitepress/config.ts で管理しています。

新しいページを追加したら、docs/.vitepress/config.ts の sidebar にもリンクを追加してください。