mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-11 01:31:39 -05:00
Fix failing tests
This commit is contained in:
parent
93e91e7944
commit
e32ad54f35
2 changed files with 38 additions and 32 deletions
|
|
@ -49,7 +49,7 @@ class Photoprism::RequestPhotos
|
||||||
)
|
)
|
||||||
|
|
||||||
if response.code != 200
|
if response.code != 200
|
||||||
Rails.logger.info "Photoprism API returned #{response.code}: #{response.body}"
|
Rails.logger.error "Photoprism API returned #{response.code}: #{response.body}"
|
||||||
Rails.logger.debug "Photoprism API request params: #{request_params(offset).inspect}"
|
Rails.logger.debug "Photoprism API request params: #{request_params(offset).inspect}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,17 @@ require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Photoprism::RequestPhotos do
|
RSpec.describe Photoprism::RequestPhotos do
|
||||||
let(:user) do
|
let(:user) do
|
||||||
create(:user,
|
create(
|
||||||
settings: {
|
:user,
|
||||||
'photoprism_url' => 'http://photoprism.local',
|
settings: {
|
||||||
'photoprism_api_key' => 'test_api_key'
|
'photoprism_url' => 'http://photoprism.local',
|
||||||
})
|
'photoprism_api_key' => 'test_api_key'
|
||||||
|
}
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:start_date) { '2023-01-01' }
|
let(:start_date) { '2024-01-01' }
|
||||||
let(:end_date) { '2023-12-31' }
|
let(:end_date) { '2024-12-31' }
|
||||||
let(:service) { described_class.new(user, start_date: start_date, end_date: end_date) }
|
let(:service) { described_class.new(user, start_date: start_date, end_date: end_date) }
|
||||||
|
|
||||||
let(:mock_photo_response) do
|
let(:mock_photo_response) do
|
||||||
|
|
@ -150,7 +152,7 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
before do
|
before do
|
||||||
stub_request(
|
stub_request(
|
||||||
:any,
|
:any,
|
||||||
"#{user.settings['photoprism_url']}/api/v1/photos?after=2023-01-01&before=2023-12-31&count=1000&public=true&q=&quality=3"
|
"#{user.settings['photoprism_url']}/api/v1/photos?after=#{start_date}&before=#{end_date}&count=1000&public=true&q=&quality=3"
|
||||||
).with(
|
).with(
|
||||||
headers: {
|
headers: {
|
||||||
'Accept' => 'application/json',
|
'Accept' => 'application/json',
|
||||||
|
|
@ -166,7 +168,7 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
|
|
||||||
stub_request(
|
stub_request(
|
||||||
:any,
|
:any,
|
||||||
"#{user.settings['photoprism_url']}/api/v1/photos?after=2023-01-01&before=2023-12-31&count=1000&public=true&q=&quality=3&offset=1000"
|
"#{user.settings['photoprism_url']}/api/v1/photos?after=#{start_date}&before=#{end_date}&count=1000&public=true&q=&quality=3&offset=1000"
|
||||||
).to_return(status: 200, body: [].to_json)
|
).to_return(status: 200, body: [].to_json)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -196,43 +198,48 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
before do
|
before do
|
||||||
stub_request(
|
stub_request(
|
||||||
:get,
|
:get,
|
||||||
"#{user.settings['photoprism_url']}/api/v1/photos?after=2023-01-01&before=2023-12-31&count=1000&public=true&q=&quality=3"
|
"#{user.settings['photoprism_url']}/api/v1/photos?after=#{start_date}&before=#{end_date}&count=1000&public=true&q=&quality=3"
|
||||||
)
|
).to_return(status: 400, body: { status: 400, error: 'Unable to do that' }.to_json)
|
||||||
.to_return(status: 401, body: 'Unauthorized')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'logs the error' do
|
it 'logs the error' do
|
||||||
expect(Rails.logger).to receive(:error).with('Photoprism API returned 401: Unauthorized')
|
expect(Rails.logger).to \
|
||||||
|
receive(:error).with('Photoprism API returned 400: {"status":400,"error":"Unable to do that"}')
|
||||||
|
expect(Rails.logger).to \
|
||||||
|
receive(:debug).with(
|
||||||
|
"Photoprism API request params: #{{ q: '', public: true, quality: 3, after: start_date, count: 1000,
|
||||||
|
before: end_date }}"
|
||||||
|
)
|
||||||
|
|
||||||
service.call
|
service.call
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with pagination' do
|
context 'with pagination' do
|
||||||
let(:first_page) { [{ 'TakenAtLocal' => '2023-06-15T14:30:00Z' }] }
|
let(:first_page) { [{ 'TakenAtLocal' => "#{start_date}T14:30:00Z" }] }
|
||||||
let(:second_page) { [{ 'TakenAtLocal' => '2023-06-16T14:30:00Z' }] }
|
let(:second_page) { [{ 'TakenAtLocal' => "#{start_date}T14:30:00Z" }] }
|
||||||
let(:empty_page) { [] }
|
let(:empty_page) { [] }
|
||||||
|
let(:common_headers) do
|
||||||
before do
|
{
|
||||||
common_headers = {
|
|
||||||
'Accept' => 'application/json',
|
'Accept' => 'application/json',
|
||||||
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||||
'Authorization' => 'Bearer test_api_key',
|
'Authorization' => 'Bearer test_api_key',
|
||||||
'User-Agent' => 'Ruby'
|
'User-Agent' => 'Ruby'
|
||||||
}
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
# First page
|
# First page
|
||||||
stub_request(:any, "#{user.settings['photoprism_url']}/api/v1/photos")
|
stub_request(:any, "#{user.settings['photoprism_url']}/api/v1/photos")
|
||||||
.with(
|
.with(
|
||||||
headers: common_headers,
|
headers: common_headers,
|
||||||
query: {
|
query: {
|
||||||
after: '2023-01-01',
|
after: start_date,
|
||||||
before: '2023-12-31',
|
before: end_date,
|
||||||
count: '1000',
|
count: '1000',
|
||||||
public: 'true',
|
public: 'true',
|
||||||
q: '',
|
q: '',
|
||||||
quality: '3',
|
quality: '3'
|
||||||
photo: 'yes'
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.to_return(status: 200, body: first_page.to_json)
|
.to_return(status: 200, body: first_page.to_json)
|
||||||
|
|
@ -242,14 +249,13 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
.with(
|
.with(
|
||||||
headers: common_headers,
|
headers: common_headers,
|
||||||
query: {
|
query: {
|
||||||
after: '2023-01-01',
|
after: start_date,
|
||||||
before: '2023-12-31',
|
before: end_date,
|
||||||
count: '1000',
|
count: '1000',
|
||||||
public: 'true',
|
public: 'true',
|
||||||
q: '',
|
q: '',
|
||||||
quality: '3',
|
quality: '3',
|
||||||
offset: '1000',
|
offset: '1000'
|
||||||
photo: 'yes'
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.to_return(status: 200, body: second_page.to_json)
|
.to_return(status: 200, body: second_page.to_json)
|
||||||
|
|
@ -259,14 +265,13 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
.with(
|
.with(
|
||||||
headers: common_headers,
|
headers: common_headers,
|
||||||
query: {
|
query: {
|
||||||
after: '2023-01-01',
|
after: start_date,
|
||||||
before: '2023-12-31',
|
before: end_date,
|
||||||
count: '1000',
|
count: '1000',
|
||||||
public: 'true',
|
public: 'true',
|
||||||
q: '',
|
q: '',
|
||||||
quality: '3',
|
quality: '3',
|
||||||
offset: '2000',
|
offset: '2000'
|
||||||
photo: 'yes'
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.to_return(status: 200, body: empty_page.to_json)
|
.to_return(status: 200, body: empty_page.to_json)
|
||||||
|
|
@ -274,7 +279,8 @@ RSpec.describe Photoprism::RequestPhotos do
|
||||||
|
|
||||||
it 'fetches all pages until empty result' do
|
it 'fetches all pages until empty result' do
|
||||||
result = service.call
|
result = service.call
|
||||||
expect(result.length).to eq(2)
|
|
||||||
|
expect(result.size).to eq(2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue