Files
sure/spec/requests/api/v1/provider_connections_spec.rb
ghost 45c5284148 feat(api): expose provider connection health (#1636)
* feat(api): expose provider connection health

* fix(api): harden provider health review paths

* fix(api): refine provider health responses

* test(api): align provider health docs key scope

* fix(api): clarify provider connection status

* fix(api): batch provider connection sync status

* fix(api): polish provider connection status review feedback

* fix(api): correct provider connection summaries
2026-05-07 00:42:32 +02:00

55 lines
1.6 KiB
Ruby

# frozen_string_literal: true
require "swagger_helper"
RSpec.describe "Api::V1::ProviderConnections", type: :request do
let(:user) { users(:family_admin) }
let(:api_key) do
key = ApiKey.generate_secure_key
ApiKey.create!(
user: user,
name: "API Docs Key",
key: key,
scopes: %w[read_write],
source: "web"
)
end
let(:api_key_without_read_scope) do
key = ApiKey.generate_secure_key
ApiKey.new(
user: user,
name: "API Docs Write Key",
key: key,
scopes: %w[write],
source: "web"
).tap { |api_key| api_key.save!(validate: false) }
end
let(:'X-Api-Key') { api_key.plain_key }
path "/api/v1/provider_connections" do
get "Lists provider connection status summaries" do
description "List safe provider connection status metadata for the authenticated user's family without exposing credentials, raw provider payloads, or raw sync errors."
tags "Provider Connections"
security [ { apiKeyAuth: [] } ]
produces "application/json"
response "200", "provider connection status summaries listed" do
schema "$ref" => "#/components/schemas/ProviderConnectionCollection"
run_test!
end
response "401", "unauthorized" do
let(:'X-Api-Key') { nil }
schema "$ref" => "#/components/schemas/ErrorResponse"
run_test!
end
response "403", "insufficient scope" do
let(:'X-Api-Key') { api_key_without_read_scope.plain_key }
schema "$ref" => "#/components/schemas/ErrorResponse"
run_test!
end
end
end
end