Selaa lähdekoodia

Add tests for default period parameter and its behavior

Chris Mullins 6 vuotta sitten
vanhempi
commit
1fc28acae6
2 muutettua tiedostoa jossa 31 lisäystä ja 1 poistoa
  1. 2 1
      test/remote/spec/settings_spec.rb
  2. 29 0
      test/remote/spec/transition_spec.rb

+ 2 - 1
test/remote/spec/settings_spec.rb

@@ -29,7 +29,8 @@ RSpec.describe 'Settings' do
         'simple_mqtt_client_status' => [true, false],
         'packet_repeats_per_loop' => [10],
         'home_assistant_discovery_prefix' => ['', 'abc', 'a/b/c'],
-        'wifi_mode' => %w(b g n)
+        'wifi_mode' => %w(b g n),
+        'default_transition_period' => [200, 500]
       }.each do |key, values|
         values.each do |v|
           @client.patch_settings({key => v})

+ 29 - 0
test/remote/spec/transition_spec.rb

@@ -680,4 +680,33 @@ RSpec.describe 'Transitions' do
       end
     end
   end
+
+  context 'default parameters in settings' do
+    it 'should respect the default parameter setting key' do
+      [500, 1000, 2000].each do |period|
+        field = 'brightness'
+
+        @client.patch_settings(default_transition_period: period)
+        @client.delete_state(@id_params)
+        @client.patch_state({'status' => 'ON', field => 0}, @id_params)
+        seen_updates = []
+
+        @mqtt_client.on_update(@id_params) do |id, message|
+          seen_updates << message[field] if !message[field].nil?
+          seen_updates.last == 255
+        end
+
+        @client.patch_state({field => 255, 'transition' => 2.0, period: period}, @id_params)
+
+        @mqtt_client.wait_for_listeners
+        @mqtt_client = create_mqtt_client()
+
+        transitions_are_equal(
+          expected: calculate_transition_steps(start_value: 0, end_value: 255, duration: 2000, period: period),
+          seen: seen_updates,
+          allowed_variation: 3
+        )
+      end
+    end
+  end
 end