2023-04-13 13:54:26 +00:00
|
|
|
package d2cli
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestOutputFormat(t *testing.T) {
|
|
|
|
|
type testCase struct {
|
|
|
|
|
outputPath string
|
|
|
|
|
extension exportExtension
|
|
|
|
|
supportsDarkTheme bool
|
|
|
|
|
supportsAnimation bool
|
|
|
|
|
requiresPngRender bool
|
|
|
|
|
}
|
|
|
|
|
testCases := []testCase{
|
|
|
|
|
{
|
|
|
|
|
outputPath: "/out.svg",
|
|
|
|
|
extension: ".svg",
|
|
|
|
|
supportsDarkTheme: true,
|
|
|
|
|
supportsAnimation: true,
|
|
|
|
|
requiresPngRender: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
// assumes SVG by default
|
|
|
|
|
outputPath: "/out",
|
|
|
|
|
extension: ".svg",
|
|
|
|
|
supportsDarkTheme: true,
|
|
|
|
|
supportsAnimation: true,
|
|
|
|
|
requiresPngRender: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
outputPath: "-",
|
|
|
|
|
extension: ".svg",
|
|
|
|
|
supportsDarkTheme: true,
|
|
|
|
|
supportsAnimation: true,
|
|
|
|
|
requiresPngRender: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
outputPath: "/out.png",
|
|
|
|
|
extension: ".png",
|
|
|
|
|
supportsDarkTheme: false,
|
|
|
|
|
supportsAnimation: false,
|
|
|
|
|
requiresPngRender: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
outputPath: "/out.pptx",
|
|
|
|
|
extension: ".pptx",
|
|
|
|
|
supportsDarkTheme: false,
|
|
|
|
|
supportsAnimation: false,
|
|
|
|
|
requiresPngRender: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
outputPath: "/out.pdf",
|
|
|
|
|
extension: ".pdf",
|
|
|
|
|
supportsDarkTheme: false,
|
|
|
|
|
supportsAnimation: false,
|
|
|
|
|
requiresPngRender: true,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, tc := range testCases {
|
|
|
|
|
tc := tc
|
|
|
|
|
t.Run(tc.outputPath, func(t *testing.T) {
|
|
|
|
|
extension := getExportExtension(tc.outputPath)
|
|
|
|
|
assert.Equal(t, tc.extension, extension)
|
|
|
|
|
assert.Equal(t, tc.supportsAnimation, extension.supportsAnimation())
|
|
|
|
|
assert.Equal(t, tc.supportsDarkTheme, extension.supportsDarkTheme())
|
2023-04-13 21:50:39 +00:00
|
|
|
assert.Equal(t, tc.requiresPngRender, extension.requiresPNGRenderer())
|
2023-04-13 13:54:26 +00:00
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|