1717
1818 class TestEvent
1919 attr_reader :type , :data
20-
20+
2121 def initialize ( type , data )
2222 @type = type
2323 @data = data
@@ -32,34 +32,33 @@ def feature_event(name, enabled = true)
3232 "feature" : {
3333 "name" : name ,
3434 "enabled" : enabled ,
35- "strategies" : [ { "name" : "default" } ]
35+ "strategies" : [ { "name" : "default" } ]
3636 }
3737 } ]
3838 } . to_json
3939 end
4040
4141 def backup_contains_feature? ( name )
4242 return false unless File . exist? ( backup_file )
43+
4344 parsed = JSON . parse ( File . read ( backup_file ) )
4445 feature_names = parsed [ 'features' ] . map { |f | f [ 'name' ] }
4546 feature_names . include? ( name )
4647 end
4748
4849 describe '#process_event' do
49-
5050 it 'processes valid events and saves full engine state' do
5151 event = TestEvent . new ( 'unleash-updated' , feature_event ( 'test-feature' ) )
5252 processor . process_event ( event )
53-
53+
5454 expect ( engine . enabled? ( 'test-feature' , { } ) ) . to eq ( true )
5555 expect ( backup_contains_feature? ( 'test-feature' ) ) . to eq ( true )
5656 end
5757
58-
5958 it 'ignores unknown event types' do
6059 event = TestEvent . new ( 'unknown-event' , feature_event ( 'test-feature' ) )
6160 processor . process_event ( event )
62-
61+
6362 expect ( File . exist? ( backup_file ) ) . to eq ( false )
6463 expect ( engine . enabled? ( 'test-feature' , { } ) ) . to be_falsy
6564 end
@@ -74,9 +73,9 @@ def backup_contains_feature?(name)
7473
7574 it 'handles invalid JSON gracefully without creating backup' do
7675 event = TestEvent . new ( 'unleash-updated' , 'invalid json' )
77-
76+
7877 expect { processor . process_event ( event ) } . not_to raise_error
7978 expect ( File . exist? ( backup_file ) ) . to eq ( false )
8079 end
8180 end
82- end
81+ end
0 commit comments