Skip to content

Commit d736446

Browse files
committed
don't disable the display if previously enabled outside with_display
1 parent ab47c85 commit d736446

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1010
- `DisplayManager` class for managing Xvfb instance if needed
1111

1212
### Changed
13+
- `DisplayManger.with_display` doesn't `disable` if the display was enabled prior to starting the block
1314

1415
### Deprecated
1516

lib/arduino_ci/display_manager.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@ def disable
5252

5353
# Enable a virtual display for the duration of the given block
5454
def with_display
55-
enable
55+
was_enabled = @enabled
56+
enable unless was_enabled
5657
begin
5758
yield environment
5859
ensure
59-
disable
60+
disable unless was_enabled
6061
end
6162
end
6263

spec/display_manager_spec.rb

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
end
99

1010
context "with_display" do
11-
it "Properly enables and disables" do
12-
manager = ArduinoCI::DisplayManager::instance
11+
manager = ArduinoCI::DisplayManager::instance
12+
manager.disable
13+
14+
it "Properly enables and disables when not previously enabled" do
1315
expect(manager.enabled).to be false
1416
manager.with_display do |environment|
1517
expect(manager.enabled).to be true
@@ -19,5 +21,17 @@
1921
end
2022
expect(manager.enabled).to be false
2123
end
24+
25+
it "Properly enables and disables when previously enabled" do
26+
manager.enable
27+
expect(manager.enabled).to be true
28+
manager.with_display do |environment|
29+
expect(manager.enabled).to be true
30+
expect(environment.class).to eq(Hash)
31+
also_manager = ArduinoCI::DisplayManager::instance
32+
expect(also_manager.enabled).to be true
33+
end
34+
expect(manager.enabled).to be true
35+
end
2236
end
2337
end

0 commit comments

Comments
 (0)