(t *testing.T, db database.DB)
| 511 | } |
| 512 | |
| 513 | func testUpsertProjectVariable(t *testing.T, db database.DB) { |
| 514 | _, projectID, userID := seed(t, db) |
| 515 | |
| 516 | ctx := context.Background() |
| 517 | // create project variables |
| 518 | vars, err := db.UpsertProjectVariable(ctx, projectID, "", map[string]string{"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, userID) |
| 519 | require.NoError(t, err) |
| 520 | |
| 521 | require.Equal(t, len(vars), 3) |
| 522 | |
| 523 | // update some variables |
| 524 | vars, err = db.UpsertProjectVariable(ctx, projectID, "prod", map[string]string{"foo1": "baz1", "foo2": "baz2"}, userID) |
| 525 | require.NoError(t, err) |
| 526 | require.Equal(t, len(vars), 2) |
| 527 | |
| 528 | // update some dev variables |
| 529 | vars, err = db.UpsertProjectVariable(ctx, projectID, "dev", map[string]string{"foo3": "bad3"}, userID) |
| 530 | require.NoError(t, err) |
| 531 | require.Equal(t, len(vars), 1) |
| 532 | |
| 533 | // find all variables |
| 534 | vars, err = db.FindProjectVariables(ctx, projectID, nil) |
| 535 | require.NoError(t, err) |
| 536 | require.Equal(t, len(vars), 6) |
| 537 | |
| 538 | // find project variables |
| 539 | env := "prod" |
| 540 | vars, err = db.FindProjectVariables(ctx, projectID, &env) |
| 541 | require.NoError(t, err) |
| 542 | |
| 543 | require.Equal(t, len(vars), 3) |
| 544 | for _, v := range vars { |
| 545 | switch v.Name { |
| 546 | case "foo1": |
| 547 | require.Equal(t, "baz1", string(v.Value)) |
| 548 | case "foo2": |
| 549 | require.Equal(t, "baz2", string(v.Value)) |
| 550 | case "foo3": |
| 551 | require.Equal(t, "bar3", string(v.Value)) |
| 552 | } |
| 553 | } |
| 554 | |
| 555 | err = db.DeleteProjectVariables(ctx, projectID, "", []string{"foo1", "foo2", "foo3", "foo4"}) |
| 556 | require.NoError(t, err) |
| 557 | |
| 558 | // find project variables |
| 559 | vars, err = db.FindProjectVariables(ctx, projectID, &env) |
| 560 | require.NoError(t, err) |
| 561 | require.Equal(t, len(vars), 2) |
| 562 | |
| 563 | err = db.DeleteProjectVariables(ctx, projectID, "prod", []string{"foo1", "foo2", "foo3", "foo4"}) |
| 564 | require.NoError(t, err) |
| 565 | |
| 566 | // find project variables |
| 567 | vars, err = db.FindProjectVariables(ctx, projectID, &env) |
| 568 | require.NoError(t, err) |
| 569 | require.Equal(t, len(vars), 0) |
| 570 |
no test coverage detected