(t *testing.T)
| 8092 | } |
| 8093 | |
| 8094 | func TestUserSecretsCRUDOperations(t *testing.T) { |
| 8095 | t.Parallel() |
| 8096 | |
| 8097 | // Use raw database without dbauthz wrapper for this test |
| 8098 | db, _ := dbtestutil.NewDB(t) |
| 8099 | |
| 8100 | t.Run("FullCRUDWorkflow", func(t *testing.T) { |
| 8101 | t.Parallel() |
| 8102 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 8103 | |
| 8104 | // Create a new user for this test |
| 8105 | testUser := dbgen.User(t, db, database.User{}) |
| 8106 | |
| 8107 | // 1. CREATE |
| 8108 | secretID := uuid.New() |
| 8109 | createParams := database.CreateUserSecretParams{ |
| 8110 | ID: secretID, |
| 8111 | UserID: testUser.ID, |
| 8112 | Name: "workflow-secret", |
| 8113 | Description: "Secret for full CRUD workflow", |
| 8114 | Value: "workflow-value", |
| 8115 | EnvName: "WORKFLOW_ENV", |
| 8116 | FilePath: "/workflow/path", |
| 8117 | } |
| 8118 | |
| 8119 | createdSecret, err := db.CreateUserSecret(ctx, createParams) |
| 8120 | require.NoError(t, err) |
| 8121 | assert.Equal(t, secretID, createdSecret.ID) |
| 8122 | |
| 8123 | // 2. READ by UserID and Name |
| 8124 | readByNameParams := database.GetUserSecretByUserIDAndNameParams{ |
| 8125 | UserID: testUser.ID, |
| 8126 | Name: "workflow-secret", |
| 8127 | } |
| 8128 | readByNameSecret, err := db.GetUserSecretByUserIDAndName(ctx, readByNameParams) |
| 8129 | require.NoError(t, err) |
| 8130 | assert.Equal(t, createdSecret.ID, readByNameSecret.ID) |
| 8131 | assert.Equal(t, "workflow-secret", readByNameSecret.Name) |
| 8132 | |
| 8133 | // 3. LIST (metadata only) |
| 8134 | secrets, err := db.ListUserSecrets(ctx, testUser.ID) |
| 8135 | require.NoError(t, err) |
| 8136 | require.Len(t, secrets, 1) |
| 8137 | assert.Equal(t, createdSecret.ID, secrets[0].ID) |
| 8138 | |
| 8139 | // 4. LIST with values |
| 8140 | secretsWithValues, err := db.ListUserSecretsWithValues(ctx, testUser.ID) |
| 8141 | require.NoError(t, err) |
| 8142 | require.Len(t, secretsWithValues, 1) |
| 8143 | assert.Equal(t, "workflow-value", secretsWithValues[0].Value) |
| 8144 | |
| 8145 | // 5. UPDATE (partial - only description) |
| 8146 | updateParams := database.UpdateUserSecretByUserIDAndNameParams{ |
| 8147 | UserID: testUser.ID, |
| 8148 | Name: "workflow-secret", |
| 8149 | UpdateDescription: true, |
| 8150 | Description: "Updated workflow description", |
| 8151 | } |
nothing calls this directly
no test coverage detected