(t *testing.T, m Storage, networks []uuid.UUID)
| 102 | } |
| 103 | |
| 104 | func TestHelperCreateGetUpdateDeleteClientNext(t *testing.T, m Storage, networks []uuid.UUID) { |
| 105 | ctx := context.Background() |
| 106 | |
| 107 | resources := map[uuid.UUID][]Client{} |
| 108 | for k := range networks { |
| 109 | nid := networks[k] |
| 110 | resources[nid] = []Client{} |
| 111 | |
| 112 | ctx := contextx.SetNIDContext(ctx, nid) |
| 113 | t.Run(fmt.Sprintf("nid=%s", nid), func(t *testing.T) { |
| 114 | var client Client |
| 115 | require.NoError(t, faker.FakeData(&client)) |
| 116 | client.CreatedAt = time.Now().Truncate(time.Second).UTC() |
| 117 | |
| 118 | t.Run("lifecycle=does not exist", func(t *testing.T) { |
| 119 | _, err := m.GetClient(ctx, uuidx.NewV4().String()) |
| 120 | require.Error(t, err) |
| 121 | }) |
| 122 | |
| 123 | t.Run("lifecycle=exists", func(t *testing.T) { |
| 124 | require.NoError(t, m.CreateClient(ctx, &client)) |
| 125 | c, err := m.GetClient(ctx, client.GetID()) |
| 126 | require.NoError(t, err) |
| 127 | assertx.EqualAsJSONExcept(t, &client, c, []string{ |
| 128 | "registration_access_token", |
| 129 | "registration_client_uri", |
| 130 | "updated_at", |
| 131 | }) |
| 132 | |
| 133 | require.ErrorIs(t, m.CreateClient(ctx, &client), sqlcon.ErrUniqueViolation) |
| 134 | }) |
| 135 | |
| 136 | t.Run("lifecycle=update", func(t *testing.T) { |
| 137 | client.Name = "updated" + nid.String() |
| 138 | require.NoError(t, m.UpdateClient(ctx, &client)) |
| 139 | c, err := m.GetClient(ctx, client.GetID()) |
| 140 | require.NoError(t, err) |
| 141 | assertx.EqualAsJSONExcept(t, &client, c, []string{ |
| 142 | "registration_access_token", |
| 143 | "registration_client_uri", |
| 144 | "updated_at", |
| 145 | }) |
| 146 | resources[nid] = append(resources[nid], client) |
| 147 | }) |
| 148 | }) |
| 149 | } |
| 150 | |
| 151 | for k := range resources { |
| 152 | original := k |
| 153 | clients := resources[k] |
| 154 | for i := range networks { |
| 155 | check := networks[i] |
| 156 | |
| 157 | t.Run("network="+original.String(), func(t *testing.T) { |
| 158 | ctx := contextx.SetNIDContext(ctx, check) |
| 159 | for _, expected := range clients { |
| 160 | c, err := m.GetClient(ctx, expected.GetID()) |
| 161 | if check != original { |
no test coverage detected