2022-11-18 01:40:00 +02:00
package mastodon
import (
"testing"
2023-03-02 05:01:11 +02:00
"github.com/goreleaser/goreleaser/internal/testctx"
2023-08-25 03:06:12 +02:00
"github.com/goreleaser/goreleaser/internal/testlib"
2022-11-18 01:40:00 +02:00
"github.com/goreleaser/goreleaser/pkg/config"
"github.com/stretchr/testify/require"
)
func TestStringer ( t * testing . T ) {
2023-12-17 20:34:28 +02:00
require . Equal ( t , "mastodon" , Pipe { } . String ( ) )
2022-11-18 01:40:00 +02:00
}
func TestDefault ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
ctx := testctx . New ( )
2022-11-18 01:40:00 +02:00
require . NoError ( t , Pipe { } . Default ( ctx ) )
2023-12-17 20:34:28 +02:00
require . Equal ( t , defaultMessageTemplate , ctx . Config . Announce . Mastodon . MessageTemplate )
2022-11-18 01:40:00 +02:00
}
func TestAnnounceInvalidTemplate ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
ctx := testctx . NewWithCfg ( config . Project {
2022-11-18 01:40:00 +02:00
Announce : config . Announce {
Mastodon : config . Mastodon {
MessageTemplate : "{{ .Foo }" ,
} ,
} ,
} )
2023-08-25 03:06:12 +02:00
testlib . RequireTemplateError ( t , Pipe { } . Announce ( ctx ) )
2022-11-18 01:40:00 +02:00
}
func TestAnnounceMissingEnv ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
ctx := testctx . NewWithCfg ( config . Project {
2022-11-18 01:40:00 +02:00
Announce : config . Announce {
Mastodon : config . Mastodon { } ,
} ,
} )
require . NoError ( t , Pipe { } . Default ( ctx ) )
2022-12-28 17:24:21 +02:00
require . EqualError ( t , Pipe { } . Announce ( ctx ) , ` mastodon: env: environment variable "MASTODON_CLIENT_ID" should not be empty; environment variable "MASTODON_CLIENT_SECRET" should not be empty; environment variable "MASTODON_ACCESS_TOKEN" should not be empty ` )
2022-11-18 01:40:00 +02:00
}
func TestSkip ( t * testing . T ) {
t . Run ( "skip" , func ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
require . True ( t , Pipe { } . Skip ( testctx . New ( ) ) )
2022-11-18 01:40:00 +02:00
} )
2022-11-18 01:54:57 +02:00
t . Run ( "skip empty server" , func ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
require . True ( t , Pipe { } . Skip ( testctx . NewWithCfg ( config . Project {
2022-11-18 01:54:57 +02:00
Announce : config . Announce {
Mastodon : config . Mastodon {
Enabled : true ,
Server : "" , // empty
} ,
} ,
} ) ) )
} )
2022-11-18 01:40:00 +02:00
t . Run ( "dont skip" , func ( t * testing . T ) {
2023-03-02 05:01:11 +02:00
require . False ( t , Pipe { } . Skip ( testctx . NewWithCfg ( config . Project {
2022-11-18 01:40:00 +02:00
Announce : config . Announce {
Mastodon : config . Mastodon {
Enabled : true ,
2022-11-18 01:54:57 +02:00
Server : "https://mastodon.social" ,
2022-11-18 01:40:00 +02:00
} ,
} ,
2022-11-18 01:54:57 +02:00
} ) ) )
2022-11-18 01:40:00 +02:00
} )
}