Open N-Olbert opened 3 weeks ago
It works if you do it like that:
[TestMethod]
public async Task TestFoo()
{
var something = new Foo();
var fullName1 = Snapshot.FullName(new SnapshotNameExtension("GetFoo"));
something.GetFoo().MatchSnapshot(fullName1);
var fullName2 = Snapshot.FullName(new SnapshotNameExtension("GetBar"));
something.GetBar().MatchSnapshot(fullName2);
}
... still odd behaviour in my opinion
Describe the bug Within a single async method, using multiple snapshots with different names does not work.
To Reproduce
Expected behavior Two different snapshots should be created and verified.
Desktop (please complete the following information):
Additional context Using MSTest
The problem is that the entire snapshot-naming info is cached in an
AsyncLocal
, therfore the second Snapshot.FullName has no effect since this cache is already initialized: https://github.com/SwissLife-OSS/snapshooter/blob/94f9c77703a05e0d03b02aba9adb68d655fab820/src/Snapshooter.MSTest/Snapshot.cs#L15C5-L17C75