Add a JSON cards endpoint for workflow columns (#2800)

* Add JSON endpoint for cards in workflow columns

* Add cards URL to column JSON responses

* Add coverage for column cards authorization
This commit is contained in:
Rob Zolkos
2026-04-09 13:17:02 -04:00
committed by GitHub
parent 1c6141c131
commit e422d5b37e
7 changed files with 147 additions and 5 deletions
@@ -0,0 +1,29 @@
require "test_helper"
class Boards::Columns::CardsControllerTest < ActionDispatch::IntegrationTest
setup do
sign_in_as :kevin
end
test "index as JSON" do
column = columns(:writebook_in_progress)
get board_column_cards_path(column.board, column), as: :json
assert_response :success
assert_kind_of Array, @response.parsed_body
assert_equal [ cards(:text).number ], @response.parsed_body.pluck("number")
assert_equal "1", response.headers["X-Total-Count"]
end
test "cannot access cards on board without access as JSON" do
board = boards(:private)
column = board.columns.create!(name: "Secret")
logout_and_sign_in_as :jason
get board_column_cards_path(board, column), as: :json
assert_response :not_found
end
end
@@ -55,6 +55,7 @@ class Boards::ColumnsControllerTest < ActionDispatch::IntegrationTest
assert_response :success
assert_equal board.columns.count, @response.parsed_body.count
assert_equal board_column_cards_url(board, board.columns.sorted.first), @response.parsed_body.first["cards_url"]
end
test "show as JSON" do
@@ -64,6 +65,7 @@ class Boards::ColumnsControllerTest < ActionDispatch::IntegrationTest
assert_response :success
assert_equal column.id, @response.parsed_body["id"]
assert_equal board_column_cards_url(column.board, column), @response.parsed_body["cards_url"]
end
test "create as JSON" do
@@ -76,6 +78,7 @@ class Boards::ColumnsControllerTest < ActionDispatch::IntegrationTest
assert_response :created
assert_equal board_column_path(board, Column.last, format: :json), @response.headers["Location"]
assert_equal "New Column", @response.parsed_body["name"]
assert_equal board_column_cards_url(board, Column.last), @response.parsed_body["cards_url"]
end
test "update as JSON" do