Skip to content

Releases: webdriverio/visual-testing

@wdio/visual-service@9.1.4

10 Feb 07:26
0296efc

Choose a tag to compare

Patch Changes

  • a3bc7a4: ## #1115 Respect alwaysSaveActualImage: false for checkScreen methods

    When using visual matchers like toMatchScreenSnapshot('tag', 0.9) with alwaysSaveActualImage: false, the actual image was still being saved even when the comparison passed within the threshold.

    The root cause was that the matcher's expected threshold was not being passed to the core comparison logic. The core used saveAboveTolerance (defaulting to 0) to decide whether to save images, while the matcher used the user-provided threshold to determine pass/fail - these were disconnected.

    This fix ensures:

    • When alwaysSaveActualImage: false and saveAboveTolerance is not explicitly set, actual images are never saved (respecting the literal meaning of the option)
    • When saveAboveTolerance is explicitly set (like matchers do internally), actual images are saved only when the mismatch exceeds that threshold

    Committers: 1

  • a3bc7a4: ## Fix: save* methods now always save files regardless of alwaysSaveActualImage setting

    Previously, when alwaysSaveActualImage: false was set in the configuration, save* methods (saveScreen, saveElement, saveFullPageScreen, saveAppScreen, saveAppElement) were not saving files to disk, causing test failures.

    The alwaysSaveActualImage option is intended to control whether actual images are saved during check* methods (comparison operations), not save* methods. Since save* methods are explicitly designed to save screenshots, they should always save files regardless of this setting.

    This fix ensures:

    • save* methods always save files to disk, even when alwaysSaveActualImage: false is set in the config
    • alwaysSaveActualImage: false continues to work correctly for check* methods (as intended for issue #1115)
    • The behavior is now consistent: save* = always save, check* = respect alwaysSaveActualImage setting

    Implementation details:

    • The visual service overrides alwaysSaveActualImage: true when calling save* methods directly from the browser API
    • save* methods respect whatever alwaysSaveActualImage value is passed to them (no special logic needed)
    • check* methods pass through the config value (which may be false), so save* methods respect it when called internally
    • This clean separation ensures save* methods work correctly when called directly while still respecting alwaysSaveActualImage for check* methods

    Committers: 1

  • Updated dependencies [a3bc7a4]

  • Updated dependencies [a3bc7a4]

    • @wdio/image-comparison-core@1.1.3

@wdio/image-comparison-core@1.1.3

10 Feb 07:26
0296efc

Choose a tag to compare

Patch Changes

  • a3bc7a4: ## #1115 Respect alwaysSaveActualImage: false for checkScreen methods

    When using visual matchers like toMatchScreenSnapshot('tag', 0.9) with alwaysSaveActualImage: false, the actual image was still being saved even when the comparison passed within the threshold.

    The root cause was that the matcher's expected threshold was not being passed to the core comparison logic. The core used saveAboveTolerance (defaulting to 0) to decide whether to save images, while the matcher used the user-provided threshold to determine pass/fail - these were disconnected.

    This fix ensures:

    • When alwaysSaveActualImage: false and saveAboveTolerance is not explicitly set, actual images are never saved (respecting the literal meaning of the option)
    • When saveAboveTolerance is explicitly set (like matchers do internally), actual images are saved only when the mismatch exceeds that threshold

    Committers: 1

  • a3bc7a4: ## Fix: save* methods now always save files regardless of alwaysSaveActualImage setting

    Previously, when alwaysSaveActualImage: false was set in the configuration, save* methods (saveScreen, saveElement, saveFullPageScreen, saveAppScreen, saveAppElement) were not saving files to disk, causing test failures.

    The alwaysSaveActualImage option is intended to control whether actual images are saved during check* methods (comparison operations), not save* methods. Since save* methods are explicitly designed to save screenshots, they should always save files regardless of this setting.

    This fix ensures:

    • save* methods always save files to disk, even when alwaysSaveActualImage: false is set in the config
    • alwaysSaveActualImage: false continues to work correctly for check* methods (as intended for issue #1115)
    • The behavior is now consistent: save* = always save, check* = respect alwaysSaveActualImage setting

    Implementation details:

    • The visual service overrides alwaysSaveActualImage: true when calling save* methods directly from the browser API
    • save* methods respect whatever alwaysSaveActualImage value is passed to them (no special logic needed)
    • check* methods pass through the config value (which may be false), so save* methods respect it when called internally
    • This clean separation ensures save* methods work correctly when called directly while still respecting alwaysSaveActualImage for check* methods

    Committers: 1

@wdio/visual-service@9.1.3

31 Jan 06:30
77a6621

Choose a tag to compare

Patch Changes

  • 2a518ff: # 🐛 Bugfixes

    #1111 Pass matcher threshold to core as saveAboveTolerance

    When using visual matchers like toMatchScreenSnapshot('tag', 0.9) with alwaysSaveActualImage: false, the actual image was still being saved even when the comparison passed within the threshold.

    The root cause was that the matcher's expected threshold was not being passed to the core comparison logic. The core used saveAboveTolerance (defaulting to 0) to decide whether to save images, while the matcher used the user-provided threshold to determine pass/fail - these were disconnected.

    This fix ensures the matcher passes the expected threshold to the core as saveAboveTolerance, so images are only saved when the mismatch actually exceeds the user's acceptable threshold.

    Committers: 1

@wdio/visual-service@9.1.2

24 Jan 07:03
ad25ea6

Choose a tag to compare

Patch Changes

  • 0a2b6d0: ## #1111 Respect saveAboveTolerance when deciding to save actual images when alwaysSaveActualImage is false.

    When alwaysSaveActualImage is false, the actual image is no longer written to disk if the mismatch is below the configured tolerance, avoiding extra actuals when the comparison still passes.

    Committers: 1

  • Updated dependencies [0a2b6d0]

    • @wdio/image-comparison-core@1.1.2

@wdio/image-comparison-core@1.1.2

24 Jan 07:03
ad25ea6

Choose a tag to compare

Patch Changes

  • 0a2b6d0: ## #1111 Respect saveAboveTolerance when deciding to save actual images when alwaysSaveActualImage is false.

    When alwaysSaveActualImage is false, the actual image is no longer written to disk if the mismatch is below the configured tolerance, avoiding extra actuals when the comparison still passes.

    Committers: 1

@wdio/visual-service@9.1.1

16 Jan 06:01
3f86c24

Choose a tag to compare

Patch Changes

  • 340fbe6: # 🐛 Bugfixes

    #1098 Improve error message when baseline is missing and both flags are false

    When autoSaveBaseline = false and alwaysSaveActualImage = false and a baseline image doesn't exist, the error message now provides clear guidance suggesting users set alwaysSaveActualImage to true if they need the actual image to create a baseline manually.

    Committers: 1

  • e4e5b5c: # 🐛 Bugfixes

    #1085 autoSaveBaseline collides with the new alwaysSaveActualImage flag

    When autoSaveBaseline is true and alwaysSaveActualImage is false, actual images were still saved. This patch should fix that

    Committers: 1

  • ddf68fe: # 🐛 Bugfixes

    #1084 expect(...).toMatch*Snapshot methods do not have Promise return types

    The methods should be typed as promises

    Committers: 1

  • Updated dependencies [340fbe6]

  • Updated dependencies [e4e5b5c]

    • @wdio/image-comparison-core@1.1.1

@wdio/visual-reporter@0.4.12

16 Jan 06:01
3f86c24

Choose a tag to compare

Patch Changes

  • e4e5b5c: # 🐛 Bugfixes

    #1085 autoSaveBaseline collides with the new alwaysSaveActualImage flag

    When autoSaveBaseline is true and alwaysSaveActualImage is false, actual images were still saved. This patch should fix that

    Committers: 1

@wdio/ocr-service@2.2.8

16 Jan 06:01
3f86c24

Choose a tag to compare

Patch Changes

  • e4e5b5c: # 🐛 Bugfixes

    #1085 autoSaveBaseline collides with the new alwaysSaveActualImage flag

    When autoSaveBaseline is true and alwaysSaveActualImage is false, actual images were still saved. This patch should fix that

    Committers: 1

@wdio/image-comparison-core@1.1.1

16 Jan 06:01
3f86c24

Choose a tag to compare

Patch Changes

  • 340fbe6: # 🐛 Bugfixes

    #1098 Improve error message when baseline is missing and both flags are false

    When autoSaveBaseline = false and alwaysSaveActualImage = false and a baseline image doesn't exist, the error message now provides clear guidance suggesting users set alwaysSaveActualImage to true if they need the actual image to create a baseline manually.

    Committers: 1

  • e4e5b5c: # 🐛 Bugfixes

    #1085 autoSaveBaseline collides with the new alwaysSaveActualImage flag

    When autoSaveBaseline is true and alwaysSaveActualImage is false, actual images were still saved. This patch should fix that

    Committers: 1

@wdio/visual-service@9.1.0

23 Dec 07:01
cb15f37

Choose a tag to compare

Minor Changes

  • bde4851: This PR will implement FR #1077 which is asking not to create the actual image on success. This should create a better performance because no files are writing to the system and should make sure that there's not a lot of noise in the actual folder.

    Committers: 1

Patch Changes

  • Updated dependencies [bde4851]
    • @wdio/image-comparison-core@1.1.0