licensekit-ruby 0.1.0.alpha.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,10 @@ def response_kind(response)
25
25
 
26
26
  content = response["content"]
27
27
  return "empty" unless content.is_a?(Hash)
28
+ return "bytes" if content.length > 1
29
+ return "bytes" if content.key?("application/pdf")
30
+ return "bytes" if content.key?("text/csv")
31
+ return "bytes" if content.key?("application/octet-stream")
28
32
  return "json" if content.key?("application/json")
29
33
  return "text" if content.key?("text/plain")
30
34
 
data/test/test_client.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require_relative "test_helper"
2
+ require "licensekit/generated/metadata"
2
3
 
3
4
  class ClientTest < Minitest::Test
4
5
  def test_management_client_normalizes_base_url_and_injects_bearer_auth
@@ -153,4 +154,46 @@ class ClientTest < Minitest::Test
153
154
  assert_equal "TOKEN_SCOPE_DENIED", error.code
154
155
  assert_equal "req_forbidden", error.request_id
155
156
  end
157
+
158
+ def test_reporting_operations_are_exposed_and_download_binary_body
159
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "listActivities"
160
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getUsageSummary"
161
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "listUsageLedger"
162
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getLicenseAuditReport"
163
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getCustomerSummary"
164
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getSubscriptionSettlement"
165
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "createReportExport"
166
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getReportExport"
167
+ assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "downloadReportExport"
168
+ assert_equal(
169
+ {
170
+ method: "GET",
171
+ path: "/api/v1/reports/exports/{id}/download",
172
+ auth: "bearer",
173
+ summary: "Download a frozen report export snapshot",
174
+ success: { 200 => "bytes" }
175
+ },
176
+ LicenseKit::Generated::OPERATION_METADATA.fetch("downloadReportExport")
177
+ )
178
+
179
+ transport = lambda do |request|
180
+ assert_equal "https://api.licensekit.dev/api/v1/reports/exports/exp_123/download", request.url
181
+
182
+ LicenseKit::TransportResponse.new(
183
+ status: 200,
184
+ headers: { "Content-Type" => "text/csv" },
185
+ body: "col_a,col_b\n1,2\n"
186
+ )
187
+ end
188
+
189
+ client = LicenseKit::ManagementClient.new(
190
+ base_url: "https://api.licensekit.dev",
191
+ token: "mgmt_test_token",
192
+ transport: transport
193
+ )
194
+
195
+ body = client.download_report_export(path: { id: "exp_123" })
196
+
197
+ assert_equal "col_a,col_b\n1,2\n".b, body
198
+ end
156
199
  end
data/test/test_scopes.rb CHANGED
@@ -4,11 +4,15 @@ class ScopesTest < Minitest::Test
4
4
  def test_get_required_scopes
5
5
  scopes = LicenseKit.get_required_scopes("createProduct")
6
6
  assert_equal ["product:write"], scopes
7
+ assert_equal ["report:read"], LicenseKit.get_required_scopes("listActivities")
8
+ assert_equal ["report:export"], LicenseKit.get_required_scopes("createReportExport")
7
9
  end
8
10
 
9
11
  def test_has_required_scopes
10
12
  assert_equal true, LicenseKit.has_required_scopes("createProduct", ["product:write"])
11
13
  assert_equal true, LicenseKit.has_required_scopes("createProduct", ["admin"])
12
14
  assert_equal false, LicenseKit.has_required_scopes("createProduct", ["product:read"])
15
+ assert_equal true, LicenseKit.has_required_scopes("listActivities", ["report:read"])
16
+ assert_equal true, LicenseKit.has_required_scopes("createReportExport", ["report:export"])
13
17
  end
14
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: licensekit-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Main
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-26 00:00:00.000000000 Z
11
+ date: 2026-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ed25519
@@ -88,9 +88,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
88
  version: '2.6'
89
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - ">"
91
+ - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 1.3.1
93
+ version: '0'
94
94
  requirements: []
95
95
  rubygems_version: 3.0.3.1
96
96
  signing_key: