diff --git a/AGENTS.md b/AGENTS.md index 93f3d30..17e380a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -154,6 +154,14 @@ npm run preview 一つの文字列補間へまとめる、中間変数へ分ける、`format` を使ふ、heredoc を 使ふ、array 又は Hash を組み立ててから処理する、条件式全体を括弧で囲む、 method へ抽出する、のいづれかへ書き換へる。 +- Ruby では、一つの文字列を、改行をまたいだ隣接文字列 literal として記述しない。 +- Ruby では、method argument 内でも、複数の文字列 literal を区切りなしで縦に + 並べない。 +- RSpec の `describe`、`context`、`it` 等の description が長い場合は、意味を + 保ったまま一行へ収まる文言へ短縮する。 +- 文字列を短縮できない場合は、用途に応じて `format`、heredoc 又は中間変数を + 検討する。 +- ただし RSpec description では、原則として簡潔な一行の文字列を使ふ。 - formatter 又は自動修正にも、Ruby の行末バックスラッシュを生成させない。 - 新規 code だけでなく、今回触れる Ruby code にも行末バックスラッシュを残さない。 - 例へば class body 内の array は、class body の 2 空白を基準に、更に 4 空白 @@ -251,6 +259,21 @@ result = first_value + \ Bad: +```rb +it( + 'returns 409 when stale changes ' + 'do not conflict' +) do +``` + +Good: + +```rb +it 'returns mergeable 409 for stale non-conflicting changes' do +``` + +Bad: + ```rb records.each { do_work(_1) } diff --git a/backend/spec/requests/posts_spec.rb b/backend/spec/requests/posts_spec.rb index 5007fb9..e1a0ee4 100644 --- a/backend/spec/requests/posts_spec.rb +++ b/backend/spec/requests/posts_spec.rb @@ -1712,10 +1712,7 @@ RSpec.describe 'Posts API', type: :request do expect(post_record.reload.title).to eq('updated by other user') end - it( - 'returns 409 with mergeable true when stale tag changes ' - 'do not conflict but merge is not requested' - ) do + it 'returns mergeable 409 for stale non-conflicting tag changes without merge' do sign_in_as(member) base_version = create_post_version_for!(post_record.reload) diff --git a/frontend/src/test/coverage.todo.test.ts b/frontend/src/test/coverage.todo.test.ts deleted file mode 100644 index a71d9a5..0000000 --- a/frontend/src/test/coverage.todo.test.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { describe, it } from 'vitest' - -describe ('pending high-level browser coverage', () => { - it.todo ('adds MSW-backed API boundary tests in a follow-up issue') - it.todo ('covers TheatreDetailPage with timer polling, comment posting, and next-post updates') - it.todo ('covers NicoTagListPage linking and pagination against realistic API payloads') - it.todo ('covers TagDetailSidebar drag/drop parent-child editing with pointer-event fidelity') - it.todo ('covers TopNav desktop and mobile menu flows as browser-level integration tests') - it.todo ('covers full App bootstrap for user creation, user verification, and 503 handling') -})