spec/controller/load_spec.rb in eye-0.1.11 vs spec/controller/load_spec.rb in eye-0.2

- old
+ new

@@ -306,21 +306,66 @@ end end describe "load is exclusive" do it "run double in time" do - t = Time.now Eye::Control.async.command(:load, fixture("dsl/long_load.eye")) Eye::Control.async.command(:load, fixture("dsl/long_load.eye")) - sleep 2.5 - Eye::Control.command(:info).should be_a(String) # actor should free here + sleep 2.5 + should_spend(0, 0.2) do + Eye::Control.command(:info).should be_a(String) + end end it "load with subloads" do silence_warnings{ Eye::Control.command(:load, fixture("dsl/subfolder2.eye")) } - Eye::Control.command(:info).should be_a(String) # actor should free here + should_spend(0, 0.2) do + Eye::Control.command(:info).should be_a(String) + end end + end + + describe "cleanup configs on delete" do + it "load config, delete 1 process, load another config" do + subject.load(fixture('dsl/load.eye')) + subject.process_by_name('p1').should be + + subject.command(:delete, "p1"); sleep 0.1 + subject.process_by_name('p1').should be_nil + + subject.load(fixture('dsl/load2.eye')) + subject.process_by_name('p1').should be_nil + end + + it "load config, delete 1 group, load another config" do + subject.load(fixture('dsl/load.eye')) + subject.group_by_name('gr1').should be + + subject.command(:delete, "gr1"); sleep 0.1 + subject.group_by_name('p1').should be_nil + + subject.load(fixture('dsl/load2.eye')) + subject.group_by_name('gr1').should be_nil + end + + it "load config, then delete app, and load it with changed app-name" do + subject.load(fixture('dsl/load3.eye')) + subject.command(:delete, "app3"); sleep 0.1 + subject.load(fixture('dsl/load4.eye')).should include(error: false) + end + end + + it "should update only changed apps" do + mock(subject).update_or_create_application('app1', is_a(Hash)) + mock(subject).update_or_create_application('app2', is_a(Hash)) + subject.load(fixture('dsl/load.eye')) + + mock(subject).update_or_create_application('app3', is_a(Hash)) + subject.load(fixture('dsl/load2.eye')) + + mock(subject).update_or_create_application('app3', is_a(Hash)) + subject.load(fixture('dsl/load3.eye')) end end \ No newline at end of file