Skip to content

Commit 2763e07

Browse files
committed
set proper availability for daemon mode
1 parent 66b8876 commit 2763e07

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

lib/ldclient-rb/impl/datasystem/fdv1.rb

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -163,17 +163,13 @@ def flag_tracker
163163
# @return [Symbol] One of DataAvailability constants
164164
#
165165
def data_availability
166-
if @config.offline?
167-
return DataAvailability::DEFAULTS
168-
end
166+
return DataAvailability::DEFAULTS if @config.offline?
169167

170-
if @update_processor && @update_processor.initialized?
171-
return DataAvailability::REFRESHED
168+
unless @config.use_ldd?
169+
return DataAvailability::REFRESHED if @update_processor && @update_processor.initialized?
172170
end
173171

174-
if @store_wrapper.initialized?
175-
return DataAvailability::CACHED
176-
end
172+
return DataAvailability::CACHED if @store_wrapper.initialized?
177173

178174
DataAvailability::DEFAULTS
179175
end
@@ -184,10 +180,9 @@ def data_availability
184180
# @return [Symbol] One of DataAvailability constants
185181
#
186182
def target_availability
187-
if @config.offline?
188-
return DataAvailability::DEFAULTS
189-
end
190-
# In LDD mode or normal connected modes, the ideal is to be refreshed
183+
return DataAvailability::DEFAULTS if @config.offline?
184+
return DataAvailability::CACHED if @config.use_ldd?
185+
191186
DataAvailability::REFRESHED
192187
end
193188

spec/impl/datasystem/fdv1_spec.rb

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,21 @@ module DataSystem
212212
expect(subject.data_availability).to eq(DataAvailability::DEFAULTS)
213213
end
214214
end
215+
216+
context "in LDD mode" do
217+
let(:config) { LaunchDarkly::Config.new(use_ldd: true) }
218+
219+
it "returns DEFAULTS when store is empty" do
220+
subject.start
221+
expect(subject.data_availability).to eq(DataAvailability::DEFAULTS)
222+
end
223+
224+
it "returns CACHED when store is initialized" do
225+
subject.start
226+
subject.store.init({})
227+
expect(subject.data_availability).to eq(DataAvailability::CACHED)
228+
end
229+
end
215230
end
216231

217232
describe "#target_availability" do
@@ -232,8 +247,8 @@ module DataSystem
232247
context "with LDD mode" do
233248
let(:config) { LaunchDarkly::Config.new(use_ldd: true) }
234249

235-
it "returns REFRESHED" do
236-
expect(subject.target_availability).to eq(DataAvailability::REFRESHED)
250+
it "returns CACHED" do
251+
expect(subject.target_availability).to eq(DataAvailability::CACHED)
237252
end
238253
end
239254
end

0 commit comments

Comments
 (0)