@@ -2,6 +2,7 @@ package chain
22
33import (
44 "context"
5+ "errors"
56 "testing"
67
78 "github.com/go-logr/logr"
@@ -18,7 +19,7 @@ import (
1819 gitServerMocks "github.com/epam/edp-codebase-operator/v2/pkg/git/mocks"
1920)
2021
21- func TestCheckCommitHashExists_ServeRequest (t * testing.T ) {
22+ func TestCheckReferenceExists_ServeRequest (t * testing.T ) {
2223 scheme := runtime .NewScheme ()
2324 err := codebaseApi .AddToScheme (scheme )
2425 require .NoError (t , err )
@@ -84,17 +85,77 @@ func TestCheckCommitHashExists_ServeRequest(t *testing.T) {
8485 testifymock .Anything ,
8586 ).Return (nil )
8687 mGit .On (
87- "CommitExists " ,
88+ "CheckReference " ,
8889 testifymock .Anything ,
8990 testifymock .Anything ,
90- ).Return (true , nil )
91+ ).Return (nil )
9192
9293 return mGit
9394 },
9495 wantErr : require .NoError ,
9596 },
9697 {
97- name : "failed, commit doesn't exist" ,
98+ name : "success, branch reference exists" ,
99+ codebaseBranch : & codebaseApi.CodebaseBranch {
100+ ObjectMeta : metav1.ObjectMeta {
101+ Name : "test" ,
102+ Namespace : "default" ,
103+ },
104+ Spec : codebaseApi.CodebaseBranchSpec {
105+ CodebaseName : "test-codebase" ,
106+ BranchName : "feature" ,
107+ FromCommit : "main" ,
108+ },
109+ },
110+ objects : []runtime.Object {
111+ & codebaseApi.Codebase {
112+ ObjectMeta : metav1.ObjectMeta {
113+ Name : "test-codebase" ,
114+ Namespace : "default" ,
115+ },
116+ Spec : codebaseApi.CodebaseSpec {
117+ GitServer : "test-git-server" ,
118+ },
119+ },
120+ & codebaseApi.GitServer {
121+ ObjectMeta : metav1.ObjectMeta {
122+ Name : "test-git-server" ,
123+ Namespace : "default" ,
124+ },
125+ Spec : codebaseApi.GitServerSpec {
126+ NameSshKeySecret : "test-ssh-key" ,
127+ },
128+ },
129+ & coreV1.Secret {
130+ ObjectMeta : metav1.ObjectMeta {
131+ Name : "test-ssh-key" ,
132+ Namespace : "default" ,
133+ },
134+ },
135+ },
136+ gitClient : func () git.Git {
137+ mGit := gitServerMocks .NewMockGit (t )
138+ mGit .On (
139+ "CloneRepositoryBySsh" ,
140+ testifymock .Anything ,
141+ testifymock .Anything ,
142+ testifymock .Anything ,
143+ testifymock .Anything ,
144+ testifymock .Anything ,
145+ testifymock .Anything ,
146+ ).Return (nil )
147+ mGit .On (
148+ "CheckReference" ,
149+ testifymock .Anything ,
150+ testifymock .Anything ,
151+ ).Return (nil )
152+
153+ return mGit
154+ },
155+ wantErr : require .NoError ,
156+ },
157+ {
158+ name : "failed, reference doesn't exist" ,
98159 codebaseBranch : & codebaseApi.CodebaseBranch {
99160 ObjectMeta : metav1.ObjectMeta {
100161 Name : "test" ,
@@ -103,7 +164,7 @@ func TestCheckCommitHashExists_ServeRequest(t *testing.T) {
103164 Spec : codebaseApi.CodebaseBranchSpec {
104165 CodebaseName : "test-codebase" ,
105166 BranchName : "main" ,
106- FromCommit : "bfba920bd3bdebc9ae1c4475d70391152645b2a4 " ,
167+ FromCommit : "non-existent " ,
107168 },
108169 },
109170 objects : []runtime.Object {
@@ -144,21 +205,20 @@ func TestCheckCommitHashExists_ServeRequest(t *testing.T) {
144205 testifymock .Anything ,
145206 ).Return (nil )
146207 mGit .On (
147- "CommitExists " ,
208+ "CheckReference " ,
148209 testifymock .Anything ,
149210 testifymock .Anything ,
150- ).Return (false , nil )
211+ ).Return (errors . New ( "reference not found" ) )
151212
152213 return mGit
153214 },
154215 wantErr : func (t require.TestingT , err error , _ ... any ) {
155216 require .Error (t , err )
156-
157- require .Contains (t , err .Error (), "commit bfba920bd3bdebc9ae1c4475d70391152645b2a4 doesn't exist" )
217+ require .Contains (t , err .Error (), "reference non-existent doesn't exist" )
158218 },
159219 },
160220 {
161- name : "skip, commit hash is empty" ,
221+ name : "skip, reference is empty" ,
162222 codebaseBranch : & codebaseApi.CodebaseBranch {
163223 ObjectMeta : metav1.ObjectMeta {
164224 Name : "test" ,
@@ -194,7 +254,7 @@ func TestCheckCommitHashExists_ServeRequest(t *testing.T) {
194254 }
195255 for _ , tt := range tests {
196256 t .Run (tt .name , func (t * testing.T ) {
197- c := CheckCommitHashExists {
257+ c := CheckReferenceExists {
198258 Client : fake .NewClientBuilder ().WithScheme (scheme ).WithRuntimeObjects (tt .objects ... ).Build (),
199259 Git : tt .gitClient (),
200260 }
0 commit comments