forked from domi/mattermost-meme
47 lines
1,020 B
Go
47 lines
1,020 B
Go
|
package memelibrary
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestIsImageAsset(t *testing.T) {
|
||
|
assert.True(t, isImageAsset("all-the-things.jpg"))
|
||
|
assert.False(t, isImageAsset("all-the-things.json"))
|
||
|
}
|
||
|
|
||
|
func TestMustLoadImage(t *testing.T) {
|
||
|
assert.NotPanics(t, func() {
|
||
|
img := mustLoadImage("images/all-the-things.jpg")
|
||
|
assert.NotNil(t, img)
|
||
|
})
|
||
|
|
||
|
assert.Panics(t, func() {
|
||
|
mustLoadImage("this-asset-does-not-exist.jpg")
|
||
|
})
|
||
|
|
||
|
assert.Panics(t, func() {
|
||
|
mustLoadImage("metadata/all-the-things.yaml")
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestTemplate(t *testing.T) {
|
||
|
assert.Nil(t, Template("not-a-template"))
|
||
|
|
||
|
template := Template("all-the-things")
|
||
|
require.NotNil(t, template)
|
||
|
assert.NotNil(t, template.Image)
|
||
|
}
|
||
|
|
||
|
func TestPatternMatch(t *testing.T) {
|
||
|
for name, metadata := range Memes() {
|
||
|
for _, pattern := range metadata.Patterns {
|
||
|
template, text := PatternMatch(pattern.Example)
|
||
|
assert.Equal(t, Template(name), template)
|
||
|
assert.NotNil(t, text)
|
||
|
}
|
||
|
}
|
||
|
}
|