(t *testing.T)
| 7908 | } |
| 7909 | |
| 7910 | func TestGetWorkspaceBuildAgentsByInstanceID(t *testing.T) { |
| 7911 | t.Parallel() |
| 7912 | |
| 7913 | t.Run("ReturnsWorkspaceBuildRootAgentsNewestFirst", func(t *testing.T) { |
| 7914 | t.Parallel() |
| 7915 | |
| 7916 | db, _ := dbtestutil.NewDB(t) |
| 7917 | authInstanceID := fmt.Sprintf("instance-%s-%d", t.Name(), time.Now().UnixNano()) |
| 7918 | olderCreatedAt := dbtime.Now().Add(-time.Hour) |
| 7919 | newerCreatedAt := dbtime.Now() |
| 7920 | |
| 7921 | older := setupWorkspaceBuildAgentQueryFixture(t, db, authInstanceID, "older", olderCreatedAt, database.WorkspaceTable{}) |
| 7922 | newer := setupWorkspaceBuildAgentQueryFixture(t, db, authInstanceID, "newer", newerCreatedAt, database.WorkspaceTable{}) |
| 7923 | |
| 7924 | ctx := testutil.Context(t, testutil.WaitShort) |
| 7925 | |
| 7926 | agents, err := db.GetWorkspaceBuildAgentsByInstanceID(ctx, authInstanceID) |
| 7927 | require.NoError(t, err) |
| 7928 | require.Len(t, agents, 2) |
| 7929 | assert.Equal(t, []uuid.UUID{newer.Agent.ID, older.Agent.ID}, []uuid.UUID{agents[0].WorkspaceAgent.ID, agents[1].WorkspaceAgent.ID}) |
| 7930 | assert.Equal(t, []uuid.UUID{newer.Build.ID, older.Build.ID}, []uuid.UUID{agents[0].WorkspaceBuildID, agents[1].WorkspaceBuildID}) |
| 7931 | assert.Equal(t, newer.Workspace.ID, agents[0].WorkspaceTable.ID) |
| 7932 | assert.Equal(t, older.Workspace.ID, agents[1].WorkspaceTable.ID) |
| 7933 | assert.Equal(t, newer.Workspace.OwnerID, agents[0].WorkspaceTable.OwnerID) |
| 7934 | assert.Equal(t, older.Workspace.OwnerID, agents[1].WorkspaceTable.OwnerID) |
| 7935 | assert.Equal(t, newer.Workspace.OrganizationID, agents[0].WorkspaceTable.OrganizationID) |
| 7936 | assert.Equal(t, older.Workspace.OrganizationID, agents[1].WorkspaceTable.OrganizationID) |
| 7937 | assert.False(t, agents[0].WorkspaceTable.Deleted) |
| 7938 | assert.False(t, agents[1].WorkspaceTable.Deleted) |
| 7939 | }) |
| 7940 | |
| 7941 | t.Run("ExcludesDeletedAgentsSubAgentsAndNonWorkspaceBuildJobs", func(t *testing.T) { |
| 7942 | t.Parallel() |
| 7943 | |
| 7944 | db, _, sqlDB := dbtestutil.NewDBWithSQLDB(t) |
| 7945 | authInstanceID := fmt.Sprintf("instance-%s-%d", t.Name(), time.Now().UnixNano()) |
| 7946 | baseCreatedAt := dbtime.Now() |
| 7947 | |
| 7948 | root := setupWorkspaceBuildAgentQueryFixture(t, db, authInstanceID, "root", baseCreatedAt.Add(-time.Hour), database.WorkspaceTable{}) |
| 7949 | _ = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{ |
| 7950 | ParentID: uuid.NullUUID{UUID: root.Agent.ID, Valid: true}, |
| 7951 | Name: "sub", |
| 7952 | ResourceID: root.Agent.ResourceID, |
| 7953 | CreatedAt: baseCreatedAt.Add(time.Minute), |
| 7954 | AuthInstanceID: sql.NullString{ |
| 7955 | String: authInstanceID, |
| 7956 | Valid: true, |
| 7957 | }, |
| 7958 | }) |
| 7959 | deletedAgent := setupWorkspaceBuildAgentQueryFixture(t, db, authInstanceID, "deleted", baseCreatedAt.Add(2*time.Minute), database.WorkspaceTable{}) |
| 7960 | _ = setupProvisionerJobAgentQueryFixture(t, db, authInstanceID, "template-import", baseCreatedAt.Add(3*time.Minute), database.ProvisionerJobTypeTemplateVersionImport) |
| 7961 | _ = setupProvisionerJobAgentQueryFixture(t, db, authInstanceID, "dry-run", baseCreatedAt.Add(4*time.Minute), database.ProvisionerJobTypeTemplateVersionDryRun) |
| 7962 | |
| 7963 | ctx := testutil.Context(t, testutil.WaitShort) |
| 7964 | markWorkspaceAgentDeleted(ctx, t, sqlDB, deletedAgent.Agent.ID) |
| 7965 | |
| 7966 | agents, err := db.GetWorkspaceBuildAgentsByInstanceID(ctx, authInstanceID) |
| 7967 | require.NoError(t, err) |
nothing calls this directly
no test coverage detected