diff --git a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
index 9e5329abf..4181bf782 100644
--- a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
+++ b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
@@ -36,7 +36,7 @@
-
+
diff --git a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs
index fb52774af..a8a3f1d0c 100644
--- a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs
+++ b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs
@@ -12,6 +12,7 @@ open DynamicObj
module PuppeteerSharpRendererOptions =
let mutable launchOptions = LaunchOptions()
+
launchOptions.Timeout <- 60000
let mutable localBrowserExecutablePath =
diff --git a/tests/Plotly.NET.ImageExport.Tests/ImageExport.fs b/tests/Plotly.NET.ImageExport.Tests/ImageExport.fs
index a502834ca..68c1d97b6 100644
--- a/tests/Plotly.NET.ImageExport.Tests/ImageExport.fs
+++ b/tests/Plotly.NET.ImageExport.Tests/ImageExport.fs
@@ -1,5 +1,6 @@
module Tests.ImageExport
+open System.Runtime.InteropServices
open Expecto
open Plotly.NET
open Plotly.NET.ImageExport
@@ -7,11 +8,14 @@ open Plotly.NET.ImageExport
open System
open System.IO
-let testBase64JPG = File.ReadAllText (__SOURCE_DIRECTORY__ + "/data/testBase64JPG.txt")
-
-let testBase64PNG =
- File.ReadAllBytes(__SOURCE_DIRECTORY__ + "/data/testPNG.png")
- |> Convert.ToBase64String
+let readTestFilePlatformSpecific filePostfix =
+ if RuntimeInformation.IsOSPlatform(OSPlatform.Linux) then
+ let content = File.ReadAllText (__SOURCE_DIRECTORY__ + $"/data/linux{filePostfix}")
+ content.Substring(0, content.Length - 1) // Because on Linux you're expected to newline terminate the file
+ else if RuntimeInformation.IsOSPlatform(OSPlatform.Windows) then
+ File.ReadAllText (__SOURCE_DIRECTORY__ + $"/data/win{filePostfix}")
+ else
+ raise (Exception "Running tests on the current OS is not supported :(")
[]
let ``Image export tests`` =
@@ -23,21 +27,25 @@ let ``Image export tests`` =
// skipping this for now, cannot make it work atm (pTestAsync -> testAsync for running it)
testList "base64 strings" [
ptestAsync "Chart.toBase64JPGStringAsync" {
+ let testBase64JPG = readTestFilePlatformSpecific "TestBase64JPG.txt"
+
let! actual = (Chart.Point([1.,1.]) |> Chart.toBase64JPGStringAsync())
return
- Expect.stringContains
+ Expect.equal
actual
testBase64JPG
"Invalid base64 string for Chart.toBase64JPGStringAsync"
}
ptestAsync "Chart.toBase64PNGStringAsync" {
+ let testBase64PNG = readTestFilePlatformSpecific "TestBase64PNG.txt"
+
let! actual = (Chart.Point([1.,1.]) |> Chart.toBase64PNGStringAsync())
return
- Expect.stringContains
+ Expect.equal
actual
- testBase64JPG
+ testBase64PNG
"Invalid base64 string for Chart.toBase64PNGStringAsync"
}
]
diff --git a/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64JPG.txt b/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64JPG.txt
new file mode 100644
index 000000000..d3473fd53
--- /dev/null
+++ b/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64JPG.txt
@@ -0,0 +1 @@
+data:image/jpeg;base64,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
diff --git a/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64PNG.txt b/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64PNG.txt
new file mode 100644
index 000000000..73fdb1e29
--- /dev/null
+++ b/tests/Plotly.NET.ImageExport.Tests/data/linuxTestBase64PNG.txt
@@ -0,0 +1 @@
+data:image/png;base64,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
diff --git a/tests/Plotly.NET.ImageExport.Tests/data/testBase64JPG.txt b/tests/Plotly.NET.ImageExport.Tests/data/winTestBase64JPG.txt
similarity index 100%
rename from tests/Plotly.NET.ImageExport.Tests/data/testBase64JPG.txt
rename to tests/Plotly.NET.ImageExport.Tests/data/winTestBase64JPG.txt
diff --git a/tests/Plotly.NET.ImageExport.Tests/data/testBase64PNG.txt b/tests/Plotly.NET.ImageExport.Tests/data/winTestBase64PNG.txt
similarity index 100%
rename from tests/Plotly.NET.ImageExport.Tests/data/testBase64PNG.txt
rename to tests/Plotly.NET.ImageExport.Tests/data/winTestBase64PNG.txt