|
| 1 | +# Copilot Business Plan (Unlimited Org) — Quota UI |
| 2 | + |
| 3 | +## Overview |
| 4 | +This file covers the **Business plan with unlimited premium-interaction |
| 5 | +usage** configured by the organization. Under this configuration the usage |
| 6 | +menus replace the Monthly Limit row with a single informational message, and |
| 7 | +the chat-view quota-warning surfaces stay dormant because there is no |
| 8 | +monthly cap to cross. |
| 9 | + |
| 10 | +### Surface-by-surface expectations (unlimited org) |
| 11 | + |
| 12 | +| Surface | Expected behaviour | |
| 13 | +|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------| |
| 14 | +| Plan label in menu header | `Business Plan` | |
| 15 | +| Header row icon | Blue (full) usage icon | |
| 16 | +| Monthly Limit row | **Hidden.** Replaced by a disabled message: `You have no monthly limit on AI credits usage set by your organization`. | |
| 17 | +| Allowance-reset row | **Hidden.** There is no monthly allowance to reset. | |
| 18 | +| Additional-usage status row | **Hidden.** | |
| 19 | +| Enable Additional Usage / Increase Budget row | **Hidden.** | |
| 20 | +| `Upgrade Plan` row | Present **iff** the language server reports `canUpgradePlan = true` for the signed-in account. Typically `false`. | |
| 21 | +| Static banner (chat view) | Not triggered. No 75% / 90% threshold to cross. | |
| 22 | +| Inline quota warning under a chat turn | Not triggered by quota exhaustion (no cap). | |
| 23 | + |
| 24 | +### Why the chat-view warning surfaces are not exercised here |
| 25 | +With unlimited premium-interaction usage there is no allowance to cross, so |
| 26 | +neither the 75% info banner nor the 90% warning banner can fire, and the |
| 27 | +quota-exhausted inline warning is unreachable. Banner / inline cases live in |
| 28 | +the bounded-org and CFI plans. Any appearance of those surfaces on an |
| 29 | +unlimited Business account is a regression. |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +## Test Cases |
| 34 | + |
| 35 | +### TC-CB-U-000: Sign in with an unlimited Business org account, record `canUpgradePlan` |
| 36 | + |
| 37 | +**Type:** `Happy Path` |
| 38 | +**Priority:** `P0` |
| 39 | + |
| 40 | +#### Preconditions |
| 41 | +- Plugin is installed and Eclipse is signed out. |
| 42 | +- A GitHub account that belongs to a **Copilot Business organization |
| 43 | + configured with unlimited premium-interaction usage** is available. |
| 44 | +- Language-server logging is enabled and the Eclipse Copilot Language Servers |
| 45 | + Log console is open (see the README section *How to Read `canUpgradePlan` |
| 46 | + From the Language-Server Log*). |
| 47 | + |
| 48 | +#### Steps |
| 49 | +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. |
| 50 | +2. Complete the device-flow sign-in with the unlimited Business account. |
| 51 | +3. Wait for the status-bar icon to switch to the signed-in icon. |
| 52 | +4. In the Eclipse Copilot Language Servers Log console, find the most recent |
| 53 | + `copilot/quotaChange` notification and: |
| 54 | + - **Record `canUpgradePlan`** (`true`, `false`, or absent). Later cases |
| 55 | + refer to this as "the recorded `canUpgradePlan` value". For a typical |
| 56 | + Business account this is `false`. |
| 57 | + - Confirm the payload indicates that the premium-interactions quota is |
| 58 | + unlimited. If it is not, the account is not actually on an unlimited |
| 59 | + org and the test should be re-run on a correctly provisioned account. |
| 60 | + |
| 61 | +#### Expected Result |
| 62 | +- The header row of both menus reads `<username> — Business Plan`. |
| 63 | +- The `canUpgradePlan` value and the "unlimited" indication have been |
| 64 | + recorded. |
| 65 | + |
| 66 | +#### 📸 Key Screenshots |
| 67 | +- [ ] Signed-in state with the `Business Plan` label |
| 68 | +- [ ] Language-server log showing `canUpgradePlan` and the unlimited flag |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### TC-CB-U-001: Status-bar menu — unlimited org informational message |
| 73 | + |
| 74 | +**Type:** `Happy Path` |
| 75 | +**Priority:** `P0` |
| 76 | + |
| 77 | +#### Preconditions |
| 78 | +- TC-CB-U-000 completed; the signed-in user is on an unlimited Business org. |
| 79 | + |
| 80 | +#### Steps |
| 81 | +1. Click the Copilot icon in the Eclipse status bar. |
| 82 | + |
| 83 | +#### Expected Result |
| 84 | +1. Header row: `<username> — Business Plan` on top; second row reads |
| 85 | + `Copilot Usage` with the **blue/full usage icon**. |
| 86 | +2. A **single disabled message row** reading exactly: |
| 87 | + `You have no monthly limit on AI credits usage set by your organization`. |
| 88 | +3. **No** Monthly Limit row. |
| 89 | +4. **No** allowance-reset row (no `Resets today` / `Reset in N days …` text). |
| 90 | +5. **No** `Additional usage enabled` / `Additional usage not enabled` status |
| 91 | + row, and **no** tooltip on such a row. |
| 92 | +6. **No** `Enable Additional Usage` / `Increase Budget` action row. |
| 93 | +7. `Upgrade Plan` row — present **iff** the recorded `canUpgradePlan` value |
| 94 | + (TC-CB-U-000) is `true`; absent otherwise. For a typical Business account |
| 95 | + it must not appear. |
| 96 | +8. Standard footer rows (Sign Out, Preferences, etc.) appear as usual below |
| 97 | + the usage section. |
| 98 | + |
| 99 | +#### 📸 Key Screenshots |
| 100 | +- [ ] Status-bar menu, unlimited Business org (full menu) |
| 101 | + |
| 102 | +--- |
| 103 | + |
| 104 | +### TC-CB-U-002: Menu-bar menu mirrors the status-bar menu |
| 105 | + |
| 106 | +**Type:** `Happy Path` |
| 107 | +**Priority:** `P0` |
| 108 | + |
| 109 | +#### Steps |
| 110 | +1. Open `GitHub Copilot` from the Eclipse menu bar. |
| 111 | +2. Compare against the menu captured in TC-CB-U-001. |
| 112 | + |
| 113 | +#### Expected Result |
| 114 | +The menu-bar menu shows the same rows in the same order with the same labels, |
| 115 | +tooltips, and icons as the status-bar menu. The unlimited-org informational |
| 116 | +message must be identical between the two surfaces. |
| 117 | + |
| 118 | +#### 📸 Key Screenshots |
| 119 | +- [ ] Menu-bar menu, unlimited Business org |
| 120 | + |
| 121 | +--- |
| 122 | + |
| 123 | +### TC-CB-U-003: Chat works without any quota banner or inline warning |
| 124 | + |
| 125 | +**Type:** `Happy Path` |
| 126 | +**Priority:** `P0` |
| 127 | + |
| 128 | +#### Preconditions |
| 129 | +- TC-CB-U-001 succeeded. |
| 130 | +- Copilot chat view is open in Agent mode. |
| 131 | + |
| 132 | +#### Steps |
| 133 | +1. Send a normal chat message (e.g. `Hello, what can you do?`) and wait for |
| 134 | + the response. |
| 135 | +2. Send a second chat message that triggers tool use (e.g. ask to read a file |
| 136 | + in the workspace). |
| 137 | +3. Inspect the chat view above the input area and under each completed turn. |
| 138 | + |
| 139 | +#### Expected Result |
| 140 | +- Both turns complete successfully. |
| 141 | +- **No** static banner appears above the chat input (no info-icon banner, no |
| 142 | + warning-icon banner, no `Upgrade Plan` link). |
| 143 | +- **No** inline warning appears under either turn (no quota-exhausted |
| 144 | + message, no `Upgrade Plan` button, no `Enable Additional Usage` button). |
| 145 | + |
| 146 | +#### 📸 Key Screenshots |
| 147 | +- [ ] Chat view with two completed turns, no banner and no inline warning |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +## Screenshots Checklist |
| 152 | +- [ ] `TC-CB-U-000` Signed-in `Business Plan` label + language-server log payload |
| 153 | +- [ ] `TC-CB-U-001` Status-bar menu, unlimited org informational message |
| 154 | +- [ ] `TC-CB-U-002` Menu-bar menu mirrors status-bar menu |
| 155 | +- [ ] `TC-CB-U-003` Chat view with no banner / no inline warning |
0 commit comments