Add more tests
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
parent
b4268e6bab
commit
1fe09548bc
3 changed files with 1288 additions and 15 deletions
|
|
@ -205,21 +205,26 @@ func WithEntityJobFilter(ghEntity params.ForgeEntity) dbCommon.PayloadFilterFunc
|
|||
}
|
||||
}
|
||||
|
||||
// WithForgeCredentialsFilter returns a filter function that filters payloads by Github credentials.
|
||||
// WithForgeCredentialsFilter returns a filter function that filters payloads by Github or Gitea credentials.
|
||||
func WithForgeCredentialsFilter(creds params.ForgeCredentials) dbCommon.PayloadFilterFunc {
|
||||
return func(payload dbCommon.ChangePayload) bool {
|
||||
var idGetter params.IDGetter
|
||||
var forgeCreds params.ForgeCredentials
|
||||
var ok bool
|
||||
switch payload.EntityType {
|
||||
case dbCommon.GithubCredentialsEntityType, dbCommon.GiteaCredentialsEntityType:
|
||||
idGetter, ok = payload.Payload.(params.ForgeCredentials)
|
||||
forgeCreds, ok = payload.Payload.(params.ForgeCredentials)
|
||||
default:
|
||||
return false
|
||||
}
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
return idGetter.GetID() == creds.GetID()
|
||||
// Gite and Github creds have different models. The ID is uint, so we
|
||||
// need to explicitly check their type, or risk a clash.
|
||||
if forgeCreds.ForgeType != creds.ForgeType {
|
||||
return false
|
||||
}
|
||||
return forgeCreds.GetID() == creds.GetID()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
16
database/watcher/util_test.go
Normal file
16
database/watcher/util_test.go
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package watcher_test
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/cloudbase/garm/database/common"
|
||||
)
|
||||
|
||||
func waitForPayload(ch <-chan common.ChangePayload, timeout time.Duration) *common.ChangePayload {
|
||||
select {
|
||||
case payload := <-ch:
|
||||
return &payload
|
||||
case <-time.After(timeout):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue