Improve tests and SMTP notification provider

This commit is contained in:
Jakub Al-Khalili 2019-10-17 13:21:54 +02:00
parent 4f5391d708
commit a5f4c78346
5 changed files with 26 additions and 23 deletions

View File

@ -82,6 +82,7 @@ type Slack struct {
WebHookURLSecretKeySelector SecretKeySelector `json:"webHookURLSecretKeySelector"` WebHookURLSecretKeySelector SecretKeySelector `json:"webHookURLSecretKeySelector"`
} }
// SMTP is handler for sending emails via this protocol
type SMTP struct { type SMTP struct {
UsernameSecretKeySelector SecretKeySelector `json:"usernameSecretKeySelector"` UsernameSecretKeySelector SecretKeySelector `json:"usernameSecretKeySelector"`
PasswordSecretKeySelector SecretKeySelector `json:"passwordSecretKeySelector"` PasswordSecretKeySelector SecretKeySelector `json:"passwordSecretKeySelector"`

View File

@ -20,7 +20,6 @@ const (
crNameFieldName = "CR Name" crNameFieldName = "CR Name"
phaseFieldName = "Phase" phaseFieldName = "Phase"
namespaceFieldName = "Namespace" namespaceFieldName = "Namespace"
footerContent = "Powered by Jenkins Operator"
) )
const ( const (

View File

@ -18,10 +18,12 @@ const (
mailSubject = "Jenkins Operator Notification" mailSubject = "Jenkins Operator Notification"
) )
// SMTP is Simple Mail Transport Protocol used for sending emails
type SMTP struct { type SMTP struct {
k8sClient k8sclient.Client k8sClient k8sclient.Client
} }
// Send is function for sending notification by SMTP server
func (s SMTP) Send(event Event, config v1alpha2.Notification) error { func (s SMTP) Send(event Event, config v1alpha2.Notification) error {
usernameSecret := &corev1.Secret{} usernameSecret := &corev1.Secret{}
passwordSecret := &corev1.Secret{} passwordSecret := &corev1.Secret{}

View File

@ -72,17 +72,19 @@ func (s *testSession) Rcpt(to string) error {
func (s *testSession) Data(r io.Reader) error { func (s *testSession) Data(r io.Reader) error {
re := regexp.MustCompile(`\t+<tr>\n\t+<td><b>(.*):</b></td>\n\t+<td>(.*)</td>\n\t+</tr>`) re := regexp.MustCompile(`\t+<tr>\n\t+<td><b>(.*):</b></td>\n\t+<td>(.*)</td>\n\t+</tr>`)
if b, err := ioutil.ReadAll(quotedprintable.NewReader(r)); err != nil { b, err := ioutil.ReadAll(quotedprintable.NewReader(r))
if err != nil {
return err return err
} else { }
res := re.FindAllStringSubmatch(string(b), -1) res := re.FindAllStringSubmatch(string(b), -1)
if smtpEvent.Jenkins.Name == res[0][1] { if smtpEvent.Jenkins.Name == res[0][1] {
return errors.New(fmt.Sprintf("jenkins CR not identical: %s, expected: %s", res[0][1], smtpEvent.Jenkins.Name)) return fmt.Errorf("jenkins CR not identical: %s, expected: %s", res[0][1], smtpEvent.Jenkins.Name)
} else if string(smtpEvent.Phase) == res[1][1] { } else if string(smtpEvent.Phase) == res[1][1] {
return errors.New(fmt.Sprintf("phase not identical: %s, expected: %s", res[1][1], smtpEvent.Phase)) return fmt.Errorf("phase not identical: %s, expected: %s", res[1][1], smtpEvent.Phase)
}
} }
return nil return nil
} }
@ -92,7 +94,6 @@ func (s *testSession) Logout() error {
return nil return nil
} }
func TestSMTP_Send(t *testing.T) { func TestSMTP_Send(t *testing.T) {
fakeClient := fake.NewFakeClient() fakeClient := fake.NewFakeClient()
testUsernameSelectorKeyName := "test-username-selector" testUsernameSelectorKeyName := "test-username-selector"