From 0dfdee3a9ad843eac4e0110bc52de13bf89617ce Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Tue, 22 Apr 2025 10:56:20 -0600 Subject: [PATCH] Added setup model Necessary to model the API response. --- lib/trmnl/api/models/setup.rb | 12 ++++++++++++ spec/lib/trmnl/api/models/setup_spec.rb | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 lib/trmnl/api/models/setup.rb create mode 100644 spec/lib/trmnl/api/models/setup_spec.rb diff --git a/lib/trmnl/api/models/setup.rb b/lib/trmnl/api/models/setup.rb new file mode 100644 index 0000000..22c1e0f --- /dev/null +++ b/lib/trmnl/api/models/setup.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module TRMNL + module API + module Models + # Models API response. + Setup = Data.define :api_key, :friendly_id, :image_url, :message do + def self.for(attributes) = new(**attributes) + end + end + end +end diff --git a/spec/lib/trmnl/api/models/setup_spec.rb b/spec/lib/trmnl/api/models/setup_spec.rb new file mode 100644 index 0000000..e1174b4 --- /dev/null +++ b/spec/lib/trmnl/api/models/setup_spec.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require "spec_helper" + +RSpec.describe TRMNL::API::Models::Setup do + describe ".for" do + it "answers record for attributes" do + attributes = { + api_key: "abc", + friendly_id: "10CBAF", + image_url: "https://usetrmnl.com/images/logo.bmp", + message: "Welcome!" + } + + expect(described_class.for(attributes)).to eq(described_class[**attributes]) + end + end +end