bug(session): Allow only valid state transitions

This commit is contained in:
Irena Rindos committed 2022-01-12 16:01:49 -05:00
1 parent f8b2e99e11
commit edae7c899f
15 files changed
+441 -11

No files matched your search

+2 -2
View File
@@ -99,7 +99,7 @@ func TestState_ImmutableFields(t *testing.T) {
_, _ = iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
session := TestDefaultSession(t, conn, wrapper, iamRepo)
state := TestState(t, conn, session.PublicId, StatusPending)
state := TestState(t, conn, session.PublicId, StatusActive)
var new State
err := rw.LookupWhere(context.Background(), &new, "session_id = ? and state = ?", []interface{}{state.SessionId, state.Status})
@@ -123,7 +123,7 @@ func TestState_ImmutableFields(t *testing.T) {
name: "status",
update: func() *State {
s := new.Clone().(*State)
s.Status = "active"
s.Status = "canceling"
return s
}(),
fieldMask: []string{"Status"},
+6 -5
View File
@@ -22,6 +22,7 @@ func TestState_Create(t *testing.T) {
sessionId string
status Status
}
tests := []struct {
name string
args args
@@ -35,11 +36,11 @@ func TestState_Create(t *testing.T) {
name: "valid",
args: args{
sessionId: session.PublicId,
status: StatusPending,
status: StatusActive,
},
want: &State{
SessionId: session.PublicId,
Status: StatusPending,
Status: StatusActive,
},
create: true,
},
@@ -161,7 +162,7 @@ func TestState_Clone(t *testing.T) {
t.Run("valid", func(t *testing.T) {
assert := assert.New(t)
s := TestDefaultSession(t, conn, wrapper, iamRepo)
state := TestState(t, conn, s.PublicId, StatusPending)
state := TestState(t, conn, s.PublicId, StatusActive)
cp := state.Clone()
assert.Equal(cp.(*State), state)
})
@@ -169,8 +170,8 @@ func TestState_Clone(t *testing.T) {
assert := assert.New(t)
s := TestDefaultSession(t, conn, wrapper, iamRepo)
s2 := TestDefaultSession(t, conn, wrapper, iamRepo)
state := TestState(t, conn, s.PublicId, StatusPending)
state2 := TestState(t, conn, s2.PublicId, StatusPending)
state := TestState(t, conn, s.PublicId, StatusActive)
state2 := TestState(t, conn, s2.PublicId, StatusActive)
cp := state.Clone()
assert.NotEqual(cp.(*State), state2)
+1 -1
View File
@@ -29,7 +29,7 @@ func Test_TestState(t *testing.T) {
require.NotNil(s)
assert.NotEmpty(s.PublicId)
state := TestState(t, conn, s.PublicId, StatusPending)
state := TestState(t, conn, s.PublicId, StatusActive)
require.NotNil(state)
}