Adding more unit tests
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-08-20 22:54:23 -04:00
parent 8c5f510c70
commit 619c122769
3 changed files with 150 additions and 1 deletions

View File

@@ -53,4 +53,113 @@ RSpec.describe(TestController) do
expect(last_response.body).to(include('Add new test'))
end
end
# POST /test/add - backend for adding a test
describe 'POST /test/add' do
before do
@hardware = Hardware.create(name: 'Test Hardware', type: 'gpu')
@benchmark = Benchmark.create(name: 'Test Benchmark', scoring: 'fps')
request_data = {
test_name: 'Test Test',
test_hardware: @hardware.id,
'test_benchmarks[]': [@benchmark.id],
test_description: 'Test for testing'
}
post '/test/add', request_data
end
it 'Test add POST route is a redirect.' do
expect(last_response).to(be_redirect)
end
it 'Test add POST route is an HTML response.' do
expect(last_response['Content-Type']).to(include('text/html'))
end
it 'Test add POST route Location header points to /test/1' do
expect(last_response['Location']).to(eq("#{BASE_URL}/test/1"))
end
it 'Test add POST route creates new Test.' do
expect(Test.count).to(eq(1))
end
it 'Test add POST route created test has name.' do
expect(Test.first.name).to(eq('Test Test'))
end
it 'Test add POST route created test has hardware.' do
expect(Test.first.hardware.id).to(eq(@hardware.id))
end
it 'Test add POST route created test has benchmarks.' do
expect(Test.first.benchmarks.length).to(eq(1))
end
it 'Test add POST route created test\'s benchmark can be read.' do
expect(Test.first.benchmarks[0].id).to(eq(@benchmark.id))
end
it 'Test add POST route created test has description.' do
expect(Test.first.description).to(eq('Test for testing'))
end
end
# GET /test/:test_id - page for viewing a test model
describe 'GET /test/:test_id' do
before do
@hardware = Hardware.create(name: 'Test Hardware', type: 'gpu')
@benchmark = Benchmark.create(name: 'Test Benchmark', scoring: 'fps')
@test = Test.create(
name: 'Test Test',
hardware_id: @hardware.id,
description: 'Test for testing'
)
@test.add_benchmark(@benchmark)
get "/test/#{@test.id}"
end
it 'Test view page returns 200.' do
expect(last_response).to(be_ok)
end
it 'Test view page is an HTML response' do
expect(last_response['Content-Type']).to(include('text/html'))
end
it 'Test view page contains test name on page.' do
expect(last_response.body).to(include("#{@test.name}"))
end
it 'Test view page contains hardware name on page.' do
expect(last_response.body).to(include("#{@hardware.name}"))
end
end
# GET /test/:test_id/edit - page for editing a test model
describe 'GET /test/:test_id/edit' do
before do
@hardware = Hardware.create(name: 'Test Hardware', type: 'gpu')
@benchmark = Benchmark.create(name: 'Test Benchmark', scoring: 'fps')
@test = Test.create(
name: 'Test Test',
hardware_id: @hardware.id,
description: 'Test for testing'
)
@test.add_benchmark(@benchmark)
get "/test/#{@test.id}/edit"
end
it 'Test edit page returns 200.' do
expect(last_response).to(be_ok)
end
it 'Test edit page is an HTML response' do
expect(last_response['Content-Type']).to(include('text/html'))
end
it 'Test edit page contains "Editing: <test name>" on page.' do
expect(last_response.body).to(include("Editing: #{@test.name}"))
end
end
end