mirror of
https://github.com/we-promise/sure.git
synced 2026-04-21 21:14:17 +00:00
feat: add valuations API endpoints for managing account reconciliations (#745)
* feat: add valuations API endpoints for managing account reconciliations * refactor: formatting * fix: make account extraction clearer * feat: validation and error handling improvements * feat: transaction * feat: error handling * Add API documentation LLM context * Make it easier for people * feat: transaction in creation * feat: add OpenAPI spec for Valuations API * fix: update notes validation to check for key presence * Prevent double render * All other docs use `apiKeyAuth` * More `apiKeyAuth` * Remove testing assertions from API doc specs * fix: correct valuation entry references --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
This commit is contained in:
@@ -132,11 +132,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
response '200', 'transactions listed' do
|
||||
schema '$ref' => '#/components/schemas/TransactionCollection'
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('transactions')).to be_present
|
||||
expect(payload.fetch('pagination')).to include('page', 'per_page', 'total_count', 'total_pages')
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '200', 'transactions filtered by account' do
|
||||
@@ -144,10 +140,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
|
||||
let(:account_id) { account.id }
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('transactions')).to be_present
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '200', 'transactions filtered by date range' do
|
||||
@@ -156,10 +149,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
let(:start_date) { (Date.current - 7.days).to_s }
|
||||
let(:end_date) { Date.current.to_s }
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('transactions')).to be_present
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
|
||||
@@ -209,11 +199,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
response '201', 'transaction created' do
|
||||
schema '$ref' => '#/components/schemas/Transaction'
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('name')).to eq('Test purchase')
|
||||
expect(payload.fetch('account').fetch('id')).to eq(account.id)
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '422', 'validation error - missing account_id' do
|
||||
@@ -261,14 +247,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
response '200', 'transaction retrieved' do
|
||||
schema '$ref' => '#/components/schemas/Transaction'
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('id')).to eq(transaction.id)
|
||||
expect(payload.fetch('name')).to eq('Grocery shopping')
|
||||
expect(payload.fetch('category').fetch('name')).to eq('Groceries')
|
||||
expect(payload.fetch('merchant').fetch('name')).to eq('Whole Foods')
|
||||
expect(payload.fetch('tags').first.fetch('name')).to eq('Essential')
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '404', 'transaction not found' do
|
||||
@@ -321,11 +300,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
response '200', 'transaction updated' do
|
||||
schema '$ref' => '#/components/schemas/Transaction'
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('name')).to eq('Updated grocery shopping')
|
||||
expect(payload.fetch('notes')).to eq('Weekly groceries')
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '404', 'transaction not found' do
|
||||
@@ -347,10 +322,7 @@ RSpec.describe 'API V1 Transactions', type: :request do
|
||||
response '200', 'transaction deleted' do
|
||||
schema '$ref' => '#/components/schemas/DeleteResponse'
|
||||
|
||||
run_test! do |response|
|
||||
payload = JSON.parse(response.body)
|
||||
expect(payload.fetch('message')).to eq('Transaction deleted successfully')
|
||||
end
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '404', 'transaction not found' do
|
||||
|
||||
Reference in New Issue
Block a user