Skip to content

Commit

Permalink
Update endpoints (#50)
Browse files Browse the repository at this point in the history
* Update endpoints

* Add Rspec
  • Loading branch information
arturantonnikau authored Aug 20, 2024
1 parent e8e0e0f commit 9e47b08
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 3 deletions.
15 changes: 15 additions & 0 deletions app/controllers/assertion_results_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true

class AssertionResultsController < ApplicationController
before_action :set_test_result

def index
@assertion_results = @test_result.assertion_results
end

private

def set_test_result
@test_result = current_user.test_results.find(params[:test_result_id])
end
end
3 changes: 3 additions & 0 deletions app/views/assertion_results/_assertion_result.json.jbuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# frozen_string_literal: true

json.extract! assertion_result, :id, :test_result_id, :assertion_id, :state, :created_at, :updated_at
3 changes: 3 additions & 0 deletions app/views/assertion_results/index.json.jbuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# frozen_string_literal: true

json.array! @assertion_results, partial: 'assertion_results/assertion_result', as: :assertion_result
2 changes: 1 addition & 1 deletion app/views/test_results/_test_result.json.jbuilder
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# frozen_string_literal: true

json.extract! test_result, :id, :result, :content, :time, :rating, :status, :created_at, :updated_at
json.extract! test_result, :id, :result, :time, :rating, :status, :created_at, :updated_at
json.url test_result_url(test_result, format: :json)
4 changes: 4 additions & 0 deletions app/views/test_results/show.json.jbuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# frozen_string_literal: true

json.partial! 'test_results/test_result', test_result: @test_result
json.assertion_results @test_result.assertion_result_ids
1 change: 1 addition & 0 deletions app/views/test_runs/_test_run.json.jbuilder
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# frozen_string_literal: true

json.extract! test_run, :id, :name, :created_at, :updated_at
json.test_result_ids test_run.test_result_ids
json.url prompt_url(test_run, format: :json)
2 changes: 1 addition & 1 deletion bin/docker-entrypoint
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ generate_credentials() {
generate_credentials

./bin/rails db:prepare
./bin/rails data:migrate
./bin/rails data:migrate

exec "${@}"
4 changes: 3 additions & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
end
end

resources :test_results, only: %i[index update show]
resources :test_results, only: %i[index update show] do
resources :assertion_results, only: %i[index]
end

resources :models do
resources :model_versions
Expand Down
34 changes: 34 additions & 0 deletions spec/controllers/assertion_results_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# frozen_string_literal: true

require 'rails_helper'

RSpec.describe AssertionResultsController, type: :controller do
let(:user) { create(:user) }
let(:prompt) { create(:prompt, user:) }
let(:test_run) { create(:test_run, prompt:) }
let(:model) { create(:model, user:) }
let(:model_version) { create(:model_version, model:) }
let(:test_model_version_run) { create(:test_model_version_run, test_run:, model_version:) }
let(:test_result) { create(:test_result, test_model_version_run:) }

before do
sign_in user
end

describe 'GET #index' do
it 'returns a success response' do
get :index, params: { test_result_id: test_result.id }, format: :json
expect(response).to be_successful
end

it 'sets the correct test_result' do
get :index, params: { test_result_id: test_result.id }, format: :json
expect(assigns(:test_result)).to eq(test_result)
end

it 'sets the correct assertion_results' do
get :index, params: { test_result_id: test_result.id }, format: :json
expect(assigns(:assertion_results)).to eq(test_result.assertion_results)
end
end
end

0 comments on commit 9e47b08

Please sign in to comment.