Skip to content

Commit

Permalink
fix: enablig Schema Registry when upserting cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
jonas-grgt committed Feb 4, 2025
1 parent 03ab8a1 commit 24cbd52
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 9 deletions.
2 changes: 1 addition & 1 deletion ui/pages/create_cluster_page/upsert_cluster_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func (m *Model) Update(msg tea.Msg) tea.Cmd {
}
m.srSelectionState = srDisabledSelected
} else if m.formValues.SrEnabled &&
((m.srSelectionState == srNothingSelected && m.mode != editMode) || m.srSelectionState == srDisabledSelected) {
((m.srSelectionState == srNothingSelected) || m.srSelectionState == srDisabledSelected) {
// Schema Registry enabled selected and previously nothing or enabled selected
m.form = m.createForm()
m.NextField(4)
Expand Down
112 changes: 104 additions & 8 deletions ui/pages/create_cluster_page/upsert_cluster_page_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -538,16 +538,14 @@ func TestCreateClusterPage(t *testing.T) {
// and: enter SASL password
keys.UpdateKeys(createEnvPage, "password")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// next field
cmd = createEnvPage.Update(cmd())
// next group
cmd = createEnvPage.Update(cmd())
// execute cmd
msg := cmd()
createEnvPage.Update(cmd())
// submit
msgs := keys.Submit(createEnvPage)

// then
assert.IsType(t, CapturedRegistrationDetails{}, msg)
assert.Len(t, msgs, 1)
assert.IsType(t, CapturedRegistrationDetails{}, msgs[0])
// and
assert.Equal(t, CapturedRegistrationDetails{
RegistrationDetails: config.RegistrationDetails{
Expand All @@ -560,7 +558,105 @@ func TestCreateClusterPage(t *testing.T) {
Username: "username",
Password: "password",
},
}, msg)
}, msgs[0])
})

t.Run("Selecting Schema Registry Enabled opens up schema registry credentials fields", func(t *testing.T) {
// given
programKtx := kontext.ProgramKtx{
WindowWidth: 100,
WindowHeight: 100,
Config: &config.Config{
Clusters: []config.Cluster{
{
Name: "PRD",
BootstrapServers: []string{"localhost:9092"},
SASLConfig: nil,
},
},
},
}
createEnvPage := NewForm(MockClusterRegisterer{}, &programKtx)
// and: enter name
keys.UpdateKeys(createEnvPage, "TST")
cmd := createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// select Primary
cmd = createEnvPage.Update(keys.Key(tea.KeyUp))
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// and: select Color
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// and: Host is entered
keys.UpdateKeys(createEnvPage, "localhost:9092")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// and: auth method none is selected
cmd = createEnvPage.Update(keys.Key(tea.KeyDown))
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// next field
cmd = createEnvPage.Update(cmd())
// and: select SASL_SSL security protocol
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// and: enter SASL username
keys.UpdateKeys(createEnvPage, "username")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
createEnvPage.Update(cmd())
// and: enter SASL password
keys.UpdateKeys(createEnvPage, "password")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// next field
createEnvPage.Update(cmd())
// select schema-registry enabled
createEnvPage.Update(keys.Key(tea.KeyDown))

render := createEnvPage.View(&ktx, ui.TestRenderer)
assert.Contains(t, render, "Schema Registry URL")
assert.Contains(t, render, "Schema Registry Username")
assert.Contains(t, render, "Schema Registry Password")

t.Run("Filling in the credentials and submitting creates the cluster", func(t *testing.T) {
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// next field
createEnvPage.Update(cmd())

// url
keys.UpdateKeys(createEnvPage, "sr-url")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// next field
createEnvPage.Update(cmd())

// username
keys.UpdateKeys(createEnvPage, "sr-user")
cmd = createEnvPage.Update(keys.Key(tea.KeyEnter))
// next field
createEnvPage.Update(cmd())

// pwd
keys.UpdateKeys(createEnvPage, "sr-pwd")
msgs := keys.Submit(createEnvPage)

assert.Len(t, msgs, 1)
assert.IsType(t, CapturedRegistrationDetails{}, msgs[0])
// and
assert.Equal(t, CapturedRegistrationDetails{
RegistrationDetails: config.RegistrationDetails{
Name: "TST",
NewName: nil,
Color: styles.ColorRed,
Host: "localhost:9092",
AuthMethod: config.SASLAuthMethod,
SecurityProtocol: config.SSLSecurityProtocol,
Username: "username",
Password: "password",
SchemaRegistry: &config.SchemaRegistryDetails{
Url: "sr-url",
Username: "sr-user",
Password: "sr-pwd",
},
},
}, msgs[0])
})
})
}

0 comments on commit 24cbd52

Please sign in to comment.