(t *testing.T)
| 3133 | } |
| 3134 | |
| 3135 | func TestOffsetLimit(t *testing.T) { |
| 3136 | t.Parallel() |
| 3137 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) |
| 3138 | defer cancel() |
| 3139 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 3140 | user := coderdtest.CreateFirstUser(t, client) |
| 3141 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 3142 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 3143 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 3144 | _ = coderdtest.CreateWorkspace(t, client, template.ID) |
| 3145 | _ = coderdtest.CreateWorkspace(t, client, template.ID) |
| 3146 | _ = coderdtest.CreateWorkspace(t, client, template.ID) |
| 3147 | |
| 3148 | // Case 1: empty finds all workspaces |
| 3149 | ws, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{}) |
| 3150 | require.NoError(t, err) |
| 3151 | require.Len(t, ws.Workspaces, 3) |
| 3152 | |
| 3153 | // Case 2: offset 1 finds 2 workspaces |
| 3154 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{ |
| 3155 | Offset: 1, |
| 3156 | }) |
| 3157 | require.NoError(t, err) |
| 3158 | require.Len(t, ws.Workspaces, 2) |
| 3159 | |
| 3160 | // Case 3: offset 1 limit 1 finds 1 workspace |
| 3161 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{ |
| 3162 | Offset: 1, |
| 3163 | Limit: 1, |
| 3164 | }) |
| 3165 | require.NoError(t, err) |
| 3166 | require.Len(t, ws.Workspaces, 1) |
| 3167 | |
| 3168 | // Case 4: offset 3 finds no workspaces |
| 3169 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{ |
| 3170 | Offset: 3, |
| 3171 | }) |
| 3172 | require.NoError(t, err) |
| 3173 | require.Len(t, ws.Workspaces, 0) |
| 3174 | require.Equal(t, ws.Count, 3) // can't find workspaces, but count is non-zero |
| 3175 | |
| 3176 | // Case 5: offset out of range |
| 3177 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{ |
| 3178 | Offset: math.MaxInt32 + 1, // Potential risk: pq: OFFSET must not be negative |
| 3179 | }) |
| 3180 | require.Error(t, err) |
| 3181 | } |
| 3182 | |
| 3183 | func TestWorkspaceUpdateAutostart(t *testing.T) { |
| 3184 | t.Parallel() |
nothing calls this directly
no test coverage detected