|
6 | 6 | "database/sql"
|
7 | 7 | "encoding/json"
|
8 | 8 | "fmt"
|
| 9 | + "math" |
9 | 10 | "net/http"
|
10 | 11 | "os"
|
11 | 12 | "strings"
|
@@ -1727,33 +1728,39 @@ func TestOffsetLimit(t *testing.T) {
|
1727 | 1728 | _ = coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
|
1728 | 1729 | _ = coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
|
1729 | 1730 |
|
1730 |
| - // empty finds all workspaces |
| 1731 | + // Case 1: empty finds all workspaces |
1731 | 1732 | ws, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{})
|
1732 | 1733 | require.NoError(t, err)
|
1733 | 1734 | require.Len(t, ws.Workspaces, 3)
|
1734 | 1735 |
|
1735 |
| - // offset 1 finds 2 workspaces |
| 1736 | + // Case 2: offset 1 finds 2 workspaces |
1736 | 1737 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{
|
1737 | 1738 | Offset: 1,
|
1738 | 1739 | })
|
1739 | 1740 | require.NoError(t, err)
|
1740 | 1741 | require.Len(t, ws.Workspaces, 2)
|
1741 | 1742 |
|
1742 |
| - // offset 1 limit 1 finds 1 workspace |
| 1743 | + // Case 3: offset 1 limit 1 finds 1 workspace |
1743 | 1744 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{
|
1744 | 1745 | Offset: 1,
|
1745 | 1746 | Limit: 1,
|
1746 | 1747 | })
|
1747 | 1748 | require.NoError(t, err)
|
1748 | 1749 | require.Len(t, ws.Workspaces, 1)
|
1749 | 1750 |
|
1750 |
| - // offset 3 finds no workspaces |
| 1751 | + // Case 4: offset 3 finds no workspaces |
1751 | 1752 | ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{
|
1752 | 1753 | Offset: 3,
|
1753 | 1754 | })
|
1754 | 1755 | require.NoError(t, err)
|
1755 | 1756 | require.Len(t, ws.Workspaces, 0)
|
1756 | 1757 | require.Equal(t, ws.Count, 3) // can't find workspaces, but count is non-zero
|
| 1758 | + |
| 1759 | + // Case 5: offset out of range |
| 1760 | + ws, err = client.Workspaces(ctx, codersdk.WorkspaceFilter{ |
| 1761 | + Offset: math.MaxInt32 + 1, // Potential risk: pq: OFFSET must not be negative |
| 1762 | + }) |
| 1763 | + require.Error(t, err) |
1757 | 1764 | }
|
1758 | 1765 |
|
1759 | 1766 | func TestWorkspaceUpdateAutostart(t *testing.T) {
|
|
0 commit comments