From e2bf09d57d057d3deb59e31900023d901f3bbf74 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 16 Mar 2026 04:48:10 -0400 Subject: [PATCH] Add timestamp spec for markers API response (#38206) --- app/controllers/api/v1/markers_controller.rb | 8 +------- spec/requests/api/v1/markers_spec.rb | 11 +++++++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/v1/markers_controller.rb b/app/controllers/api/v1/markers_controller.rb index 8eaf7767df8..cfb708ff308 100644 --- a/app/controllers/api/v1/markers_controller.rb +++ b/app/controllers/api/v1/markers_controller.rb @@ -32,13 +32,7 @@ class Api::V1::MarkersController < Api::BaseController private def serialize_map(map) - serialized = {} - - map.each_pair do |key, value| - serialized[key] = ActiveModelSerializers::SerializableResource.new(value, serializer: REST::MarkerSerializer).as_json - end - - Oj.dump(serialized) + map.transform_values { |value| ActiveModelSerializers::SerializableResource.new(value, serializer: REST::MarkerSerializer) } end def resource_params diff --git a/spec/requests/api/v1/markers_spec.rb b/spec/requests/api/v1/markers_spec.rb index 0e6ecc56855..17f19872f73 100644 --- a/spec/requests/api/v1/markers_spec.rb +++ b/spec/requests/api/v1/markers_spec.rb @@ -7,8 +7,10 @@ RSpec.describe 'API Markers' do describe 'GET /api/v1/markers' do before do - Fabricate(:marker, timeline: 'home', last_read_id: 123, user: user) - Fabricate(:marker, timeline: 'notifications', last_read_id: 456, user: user) + travel_to DateTime.parse('2026-03-15T12:34:56.789Z'), with_usec: true do + Fabricate(:marker, timeline: 'home', last_read_id: 123, user: user) + Fabricate(:marker, timeline: 'notifications', last_read_id: 456, user: user) + end get '/api/v1/markers', headers: headers, params: { timeline: %w(home notifications) } end @@ -23,6 +25,11 @@ RSpec.describe 'API Markers' do notifications: include(last_read_id: '456') ) end + + it 'uses a specific style of IS08601 timestamps' do + expect(response.parsed_body) + .to include(home: include(updated_at: eq('2026-03-15T12:34:56.789Z'))) + end end describe 'POST /api/v1/markers' do