Files
WoofWare.Expect/WoofWare.Expect.Test/TestSnapshotFinding.fs
2025-06-16 11:53:26 +01:00

214 lines
4.8 KiB
Forth

namespace WoofWare.Expect.Test
open WoofWare.Expect
open NUnit.Framework
[<TestFixture>]
module TestSnapshotFinding =
type Dummy = class end
[<Test>]
let ``Triple-quote, one line, one-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "TripleQuoteOneLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot @""replacement""
return 123
}
"
return SnapshotUpdate.updateSnapshotAtLine source 8 "replacement" |> String.concat "\n"
}
[<Test>]
let ``Triple-quote, one line, multi-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "TripleQuoteOneLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot @""replacement
more""
return 123
}
"
return
SnapshotUpdate.updateSnapshotAtLine source 8 "replacement\nmore"
|> String.concat "\n"
}
[<Test>]
let ``At-string, one line, one-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "AtStringOneLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot @""replacement""
return 123
}
"
return SnapshotUpdate.updateSnapshotAtLine source 8 "replacement" |> String.concat "\n"
}
[<Test>]
let ``At-string, one line, multi-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "AtStringOneLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot @""replacement
more""
return 123
}
"
return
SnapshotUpdate.updateSnapshotAtLine source 8 "replacement\nmore"
|> String.concat "\n"
}
[<Test>]
let ``Triple-quote, intervening comment, one-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "TripleQuoteInterveningComment.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot (* comment *)
@""replacement""
return 123
}
"
return SnapshotUpdate.updateSnapshotAtLine source 8 "replacement" |> String.concat "\n"
}
[<Test>]
let ``Triple-quote, intervening comment, multi-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "TripleQuoteInterveningComment.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot (* comment *)
@""replacement
more""
return 123
}
"
return
SnapshotUpdate.updateSnapshotAtLine source 8 "replacement\nmore"
|> String.concat "\n"
}
[<Test>]
let ``Single-quote, many lines, one-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "SingleQuoteManyLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot
@""replacement""
return 123
}
"
return SnapshotUpdate.updateSnapshotAtLine source 8 "replacement" |> String.concat "\n"
}
[<Test>]
let ``Single-quote, many lines, multi-line replacement`` () =
let source =
Assembly.getEmbeddedResource typeof<Dummy>.Assembly "SingleQuoteManyLine.fs"
|> _.Split('\n')
expect {
snapshot
@"namespace BigExample
open WoofWare.Expect
module MyModule =
let foo () =
expect {
snapshot
@""replacement
more""
return 123
}
"
return
SnapshotUpdate.updateSnapshotAtLine source 8 "replacement\nmore"
|> String.concat "\n"
}