588f03e927
Also, downgrade LLM for commands to mini. It's much cheaper and I only upgraded because of the interpretation complexities that the insight command introduced. We are implementing a much better approach with Ask.
56 lines
1.7 KiB
Ruby
56 lines
1.7 KiB
Ruby
require "test_helper"
|
|
|
|
class CommandsControllerTest < ActionDispatch::IntegrationTest
|
|
include VcrTestHelper
|
|
|
|
setup do
|
|
sign_in_as :kevin
|
|
freeze_timestamps
|
|
end
|
|
|
|
test "command that results in a redirect" do
|
|
assert_difference -> { users(:kevin).commands.count }, +1 do
|
|
post commands_path, params: { command: "#{cards(:logo).id}" }
|
|
end
|
|
|
|
assert_redirected_to cards(:logo)
|
|
end
|
|
|
|
test "command that triggers a redirect back" do
|
|
assert_difference -> { users(:kevin).commands.count }, +1 do
|
|
post commands_path, params: { command: "/assign @kevin", confirmed: "confirmed" }, headers: { "HTTP_REFERER" => cards_path }
|
|
end
|
|
|
|
assert_redirected_to cards_path
|
|
end
|
|
|
|
test "command requiring a confirmation without redirect" do
|
|
assert_no_difference -> { users(:kevin).commands.count } do
|
|
post commands_path, params: { command: "/assign @kevin" }, headers: { "HTTP_REFERER" => cards_path }
|
|
end
|
|
|
|
assert_response :conflict
|
|
|
|
json = JSON.parse(response.body)
|
|
assert_equal "Assign 3 cards to Kevin", json["confirmation"]
|
|
assert_nil json["redirect_to"]
|
|
end
|
|
|
|
test "command requiring a confirmation with a redirect" do
|
|
assert_no_difference -> { users(:kevin).commands.count } do
|
|
post commands_path, params: { command: "close cards assigned to jz" }, headers: { "HTTP_REFERER" => cards_path }
|
|
end
|
|
|
|
assert_response :conflict
|
|
|
|
json = JSON.parse(response.body)
|
|
assert_match /Close 2 cards/, json["confirmation"]
|
|
assert_equal cards_path(assignee_ids: [ users(:jz) ]), json["redirect_to"]
|
|
end
|
|
|
|
test "get a 422 on errors" do
|
|
post commands_path, params: { command: "/assign @some_missing_user" }, headers: { "HTTP_REFERER" => cards_path }
|
|
assert_response :unprocessable_entity
|
|
end
|
|
end
|