percy / percy-selenium-dotnet

Percy visual testing for .NET Selenium
https://docs.percy.io/docs/selenium-dotnet
MIT License
1 stars 0 forks source link

Return value of PercyDOM.snapshot() is not supported by .NET client #42

Closed LSViana closed 1 year ago

LSViana commented 1 year ago

(This issue was originally created in percy/cli, but it was moved here under request.)

The problem

The .NET Percy library doesn't know how to handle the object returned by Percy CLI in version 1.15.0, which was just a plain string previously.

Environment

Details

The code to take snapshot fails with an exception that has the following message:

Unable to cast object of type  System.Collections.Generic.Dictionary`2[System.String,System.Object]' to type 'System.String'.

Because the .NET client declares a string variable to store the result returned by the PercyDOM.serialize() method, but in v1.15.0 it started returning an object instead.

Debug logs

There are no logs from the CLI because the .NET client fails to process the result of PercyDOM.serialize(), therefore it never contacts the CLI to post a snapshot.

Code to reproduce issue

Use PercyIO.Selenium v1.0.0 with @percy/cli@1.15.0 (the latest available of both tools) to check the issue happening.

Extra

It is possible that this issue affects SDKs of other languages too if they're also expecting a string.

It's not a problem to me that the Percy team introduced breaking changes but, when doing that, please publish updates to the SDKs to help customers fix the problems quickly.

itsjwala commented 1 year ago

@LSViana please give the latest version a try, the issue should be resolved.

LSViana commented 1 year ago

@itsjwala Sorry for the delay to answer. After I rolled back the versions last month and things were working again, I switched my focus to other business priorities.

I just updated the implementation on my side to use the PercyIO.Selenium v1.1.0 and @percy/cli v1.16.0 and the integration is working correctly now.

Thank you for the support! 🙋‍♂️