@@ -4,13 +4,12 @@ import (
4
4
"bytes"
5
5
"errors"
6
6
"io/ioutil"
7
+ "strings"
7
8
"testing"
8
9
10
+ "github.com/gaia-pipeline/gaia"
9
11
"github.com/gaia-pipeline/gaia/services"
10
-
11
12
"github.com/gaia-pipeline/gaia/store"
12
-
13
- "github.com/gaia-pipeline/gaia"
14
13
"github.com/hashicorp/go-hclog"
15
14
)
16
15
@@ -28,6 +27,16 @@ func (mcp *mockCreatePipelineStore) PipelinePut(p *gaia.Pipeline) error {
28
27
return mcp .Error
29
28
}
30
29
30
+ type mockScheduler struct {
31
+ Error error
32
+ }
33
+
34
+ func (ms * mockScheduler ) Init () error { return nil }
35
+ func (ms * mockScheduler ) SchedulePipeline (p * gaia.Pipeline , args []gaia.Argument ) (* gaia.PipelineRun , error ) {
36
+ return nil , nil
37
+ }
38
+ func (ms * mockScheduler ) SetPipelineJobs (p * gaia.Pipeline ) error { return ms .Error }
39
+
31
40
func TestCreatePipelineUnknownType (t * testing.T ) {
32
41
tmp , _ := ioutil .TempDir ("" , "TestCreatePipelineUnknownType" )
33
42
gaia .Cfg = new (gaia.Config )
@@ -101,6 +110,7 @@ func TestCreatePipeline(t *testing.T) {
101
110
tmp , _ := ioutil .TempDir ("" , "TestCreatePipeline" )
102
111
gaia .Cfg = new (gaia.Config )
103
112
gaia .Cfg .HomePath = tmp
113
+ gaia .Cfg .PipelinePath = tmp
104
114
buf := new (bytes.Buffer )
105
115
gaia .Cfg .Logger = hclog .New (& hclog.LoggerOptions {
106
116
Level : hclog .Trace ,
@@ -110,11 +120,43 @@ func TestCreatePipeline(t *testing.T) {
110
120
mcp := new (mockCreatePipelineStore )
111
121
services .MockStorageService (mcp )
112
122
defer func () { services .MockStorageService (nil ) }()
123
+ ms := new (mockScheduler )
124
+ services .MockSchedulerService (ms )
125
+ defer func () { services .MockSchedulerService (nil ) }()
113
126
cp := new (gaia.CreatePipeline )
127
+ cp .Pipeline .Name = "test"
114
128
cp .Pipeline .Type = gaia .PTypeGolang
115
129
cp .Pipeline .Repo .URL = "https://github.com/gaia-pipeline/pipeline-test"
116
130
CreatePipeline (cp )
117
131
if cp .StatusType != gaia .CreatePipelineSuccess {
118
132
t .Fatal ("pipeline status was not success. was: " , cp .StatusType )
119
133
}
120
134
}
135
+
136
+ func TestCreatePipelineSetPipelineJobsFail (t * testing.T ) {
137
+ tmp , _ := ioutil .TempDir ("" , "TestCreatePipelineSetPipelineJobsFail" )
138
+ gaia .Cfg = new (gaia.Config )
139
+ gaia .Cfg .HomePath = tmp
140
+ gaia .Cfg .PipelinePath = tmp
141
+ buf := new (bytes.Buffer )
142
+ gaia .Cfg .Logger = hclog .New (& hclog.LoggerOptions {
143
+ Level : hclog .Trace ,
144
+ Output : buf ,
145
+ Name : "Gaia" ,
146
+ })
147
+ mcp := new (mockCreatePipelineStore )
148
+ services .MockStorageService (mcp )
149
+ defer func () { services .MockStorageService (nil ) }()
150
+ ms := new (mockScheduler )
151
+ ms .Error = errors .New ("error" )
152
+ services .MockSchedulerService (ms )
153
+ defer func () { services .MockSchedulerService (nil ) }()
154
+ cp := new (gaia.CreatePipeline )
155
+ cp .Pipeline .Name = "test"
156
+ cp .Pipeline .Type = gaia .PTypeGolang
157
+ cp .Pipeline .Repo .URL = "https://github.com/gaia-pipeline/pipeline-test"
158
+ CreatePipeline (cp )
159
+ if ! strings .Contains (cp .Output , "cannot validate pipeline" ) {
160
+ t .Fatalf ("error thrown should contain 'cannot validate pipeline' but its %s" , cp .Output )
161
+ }
162
+ }
0 commit comments