Skip to content

Commit 4e6d451

Browse files
rajbosCopilot
andcommitted
fix(tests): update test config keys from copilotTokenTracker to aiEngineeringFluency
The PR renamed settings from copilotTokenTracker.* to aiEngineeringFluency.* but test fixtures that set mock config values were not updated. This caused 11 test failures in backend-facade-methods and backend-settings tests because the source reads getConfiguration('aiEngineeringFluency') but tests were seeding copilotTokenTracker.* keys which were not found by the mock. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 0280d4c commit 4e6d451

2 files changed

Lines changed: 45 additions & 45 deletions

File tree

vscode-extension/test/unit/backend-facade-methods.test.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
209209

210210
test('getConfigPanelState with sharedKey set returns sharedKeySet=true', async () => {
211211
const facade: any = createFacade();
212-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount', 'copilotTokenTracker.backend.authMode': 'sharedKey' });
212+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount', 'aiEngineeringFluency.backend.authMode': 'sharedKey' });
213213
facade.credentialService.getStoredStorageSharedKey = async () => 'abc123';
214214
const state = await facade.getConfigPanelState();
215215
assert.equal(state.sharedKeySet, true);
@@ -218,15 +218,15 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
218218

219219
test('getConfigPanelState with entraId authMode shows Entra ID status', async () => {
220220
const facade: any = createFacade();
221-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.authMode': 'entraId' });
221+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.authMode': 'entraId' });
222222
facade.credentialService.getStoredStorageSharedKey = async () => null;
223223
const state = await facade.getConfigPanelState();
224224
assert.ok(state.authStatus.includes('Entra ID'));
225225
});
226226

227227
test('getConfigPanelState with sharedKey authMode and no key shows missing', async () => {
228228
const facade: any = createFacade();
229-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.authMode': 'sharedKey', 'copilotTokenTracker.backend.storageAccount': 'acct' });
229+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.authMode': 'sharedKey', 'aiEngineeringFluency.backend.storageAccount': 'acct' });
230230
facade.credentialService.getStoredStorageSharedKey = async () => null;
231231
const state = await facade.getConfigPanelState();
232232
assert.ok(state.authStatus.includes('missing'));
@@ -604,7 +604,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
604604

605605
test('clearBackendSharedKey with storageAccount confirms and clears', async () => {
606606
const facade: any = createFacade();
607-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
607+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
608608
(vscode as any).__mock.setNextPick('Remove Key');
609609
let cleared = false;
610610
facade.credentialService.clearStoredStorageSharedKey = async () => { cleared = true; };
@@ -617,7 +617,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
617617

618618
test('clearBackendSharedKey cancelled by user does nothing', async () => {
619619
const facade: any = createFacade();
620-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
620+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
621621
// No nextPick => user dismisses
622622
let cleared = false;
623623
facade.credentialService.clearStoredStorageSharedKey = async () => { cleared = true; };
@@ -627,7 +627,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
627627

628628
test('clearBackendSharedKey error path shows error message', async () => {
629629
const facade: any = createFacade();
630-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
630+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
631631
(vscode as any).__mock.setNextPick('Remove Key');
632632
facade.credentialService.clearStoredStorageSharedKey = async () => { throw new Error('boom'); };
633633
await facade.clearBackendSharedKey();
@@ -638,7 +638,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
638638

639639
test('setBackendSharedKey with storageAccount prompts and stores key', async () => {
640640
const facade: any = createFacade();
641-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
641+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
642642
// promptForAndStoreSharedKey calls showInputBox which returns undefined by default
643643
await facade.setBackendSharedKey();
644644
// Since showInputBox returns undefined, no success message
@@ -647,7 +647,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
647647

648648
test('setBackendSharedKey error path shows error message', async () => {
649649
const facade: any = createFacade();
650-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
650+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
651651
facade.promptForAndStoreSharedKey = async () => { throw new Error('fail!'); };
652652
await facade.setBackendSharedKey();
653653
assert.ok((vscode as any).__mock.state.lastErrorMessages.some(
@@ -657,7 +657,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
657657

658658
test('rotateBackendSharedKey error path shows error message', async () => {
659659
const facade: any = createFacade();
660-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
660+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
661661
facade.promptForAndStoreSharedKey = async () => { throw new Error('rotation fail!'); };
662662
await facade.rotateBackendSharedKey();
663663
assert.ok((vscode as any).__mock.state.lastErrorMessages.some(
@@ -674,8 +674,8 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
674674
facade.dataPlaneService.listEntitiesForRange = async () => [{ model: 'gpt-4o', inputTokens: 50 }];
675675
const settings = facade.getSettings();
676676
(vscode as any).__mock.setConfig({
677-
'copilotTokenTracker.backend.storageAccount': 'acct1',
678-
'copilotTokenTracker.backend.aggTable': 'usageAggDaily',
677+
'aiEngineeringFluency.backend.storageAccount': 'acct1',
678+
'aiEngineeringFluency.backend.aggTable': 'usageAggDaily',
679679
});
680680
const result = await facade.getAggEntitiesForRange(facade.getSettings(), '2025-01-01', '2025-01-07');
681681
assert.ok(Array.isArray(result));
@@ -702,8 +702,8 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
702702
return { deletedCount: 3, errors: [] };
703703
};
704704
(vscode as any).__mock.setConfig({
705-
'copilotTokenTracker.backend.storageAccount': 'acct1',
706-
'copilotTokenTracker.backend.aggTable': 'usageAggDaily',
705+
'aiEngineeringFluency.backend.storageAccount': 'acct1',
706+
'aiEngineeringFluency.backend.aggTable': 'usageAggDaily',
707707
});
708708
const result = await facade.deleteUserDataset('user1', 'ds1');
709709
assert.ok(deleteCalled);
@@ -729,7 +729,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
729729

730730
test('setBackendSharedKey success shows info message', async () => {
731731
const facade: any = createFacade();
732-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
732+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
733733
facade.promptForAndStoreSharedKey = async () => true;
734734
await facade.setBackendSharedKey();
735735
assert.ok((vscode as any).__mock.state.lastInfoMessages.some(
@@ -739,7 +739,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
739739

740740
test('rotateBackendSharedKey success shows info message', async () => {
741741
const facade: any = createFacade();
742-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
742+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
743743
facade.promptForAndStoreSharedKey = async () => true;
744744
await facade.rotateBackendSharedKey();
745745
assert.ok((vscode as any).__mock.state.lastInfoMessages.some(
@@ -749,7 +749,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
749749

750750
test('toggleBackendWorkspaceMachineNameSync includes team sharing suffix', async () => {
751751
const facade = createFacade();
752-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.shareWithTeam': true });
752+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.shareWithTeam': true });
753753
await facade.toggleBackendWorkspaceMachineNameSync();
754754
// When shareWithTeam is true, the suffix about team sharing should NOT be appended
755755
const msgs = (vscode as any).__mock.state.lastInfoMessages;
@@ -762,7 +762,7 @@ describe('BackendFacade private methods via casting', { concurrency: false }, ()
762762
let clearedKey = false;
763763
facade.credentialService.clearStoredStorageSharedKey = async () => { clearedKey = true; };
764764
facade.credentialService.getStoredStorageSharedKey = async () => undefined;
765-
(vscode as any).__mock.setConfig({ 'copilotTokenTracker.backend.storageAccount': 'myaccount' });
765+
(vscode as any).__mock.setConfig({ 'aiEngineeringFluency.backend.storageAccount': 'myaccount' });
766766
// Mock showWarningMessage to return "Clear Settings"
767767
(vscode as any).__mock.setNextPick('Clear Settings');
768768
const state = await facade.clearAzureSettings();

vscode-extension/test/unit/backend-settings.test.ts

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ test('shouldPromptToSetSharedKey gates on authMode/storageAccount/sharedKey pres
1818
test('getBackendSettings reads config defaults and clamps lookbackDays', () => {
1919
(vscode as any).__mock.reset();
2020
(vscode as any).__mock.setConfig({
21-
'copilotTokenTracker.backend.enabled': true,
22-
'copilotTokenTracker.backend.backend': 'storageTables',
23-
'copilotTokenTracker.backend.authMode': 'entraId',
24-
'copilotTokenTracker.backend.datasetId': ' myds ',
25-
'copilotTokenTracker.backend.shareWithTeam': false,
26-
'copilotTokenTracker.backend.shareWorkspaceMachineNames': false,
27-
'copilotTokenTracker.backend.shareConsentAt': '',
28-
'copilotTokenTracker.backend.userIdentityMode': 'pseudonymous',
29-
'copilotTokenTracker.backend.userId': ' ',
30-
'copilotTokenTracker.backend.userIdMode': 'alias',
31-
'copilotTokenTracker.backend.subscriptionId': 'sub',
32-
'copilotTokenTracker.backend.resourceGroup': 'rg',
33-
'copilotTokenTracker.backend.storageAccount': 'sa',
34-
'copilotTokenTracker.backend.aggTable': 'agg',
35-
'copilotTokenTracker.backend.eventsTable': 'events',
36-
'copilotTokenTracker.backend.lookbackDays': 999,
37-
'copilotTokenTracker.backend.includeMachineBreakdown': true
21+
'aiEngineeringFluency.backend.enabled': true,
22+
'aiEngineeringFluency.backend.backend': 'storageTables',
23+
'aiEngineeringFluency.backend.authMode': 'entraId',
24+
'aiEngineeringFluency.backend.datasetId': ' myds ',
25+
'aiEngineeringFluency.backend.shareWithTeam': false,
26+
'aiEngineeringFluency.backend.shareWorkspaceMachineNames': false,
27+
'aiEngineeringFluency.backend.shareConsentAt': '',
28+
'aiEngineeringFluency.backend.userIdentityMode': 'pseudonymous',
29+
'aiEngineeringFluency.backend.userId': ' ',
30+
'aiEngineeringFluency.backend.userIdMode': 'alias',
31+
'aiEngineeringFluency.backend.subscriptionId': 'sub',
32+
'aiEngineeringFluency.backend.resourceGroup': 'rg',
33+
'aiEngineeringFluency.backend.storageAccount': 'sa',
34+
'aiEngineeringFluency.backend.aggTable': 'agg',
35+
'aiEngineeringFluency.backend.eventsTable': 'events',
36+
'aiEngineeringFluency.backend.lookbackDays': 999,
37+
'aiEngineeringFluency.backend.includeMachineBreakdown': true
3838
});
3939

4040
const s = getBackendSettings();
@@ -49,9 +49,9 @@ test('getBackendSettings reads config defaults and clamps lookbackDays', () => {
4949
test('getBackendSettings sharingProfile is off when backend disabled', () => {
5050
(vscode as any).__mock.reset();
5151
(vscode as any).__mock.setConfig({
52-
'copilotTokenTracker.backend.enabled': false,
53-
'copilotTokenTracker.backend.shareWithTeam': true,
54-
'copilotTokenTracker.backend.userIdentityMode': 'alias',
52+
'aiEngineeringFluency.backend.enabled': false,
53+
'aiEngineeringFluency.backend.shareWithTeam': true,
54+
'aiEngineeringFluency.backend.userIdentityMode': 'alias',
5555
});
5656
const s = getBackendSettings();
5757
assert.equal(s.sharingProfile, 'off');
@@ -60,9 +60,9 @@ test('getBackendSettings sharingProfile is off when backend disabled', () => {
6060
test('getBackendSettings sharingProfile is teamIdentified when shareWithTeam and non-pseudonymous', () => {
6161
(vscode as any).__mock.reset();
6262
(vscode as any).__mock.setConfig({
63-
'copilotTokenTracker.backend.enabled': true,
64-
'copilotTokenTracker.backend.shareWithTeam': true,
65-
'copilotTokenTracker.backend.userIdentityMode': 'alias',
63+
'aiEngineeringFluency.backend.enabled': true,
64+
'aiEngineeringFluency.backend.shareWithTeam': true,
65+
'aiEngineeringFluency.backend.userIdentityMode': 'alias',
6666
});
6767
const s = getBackendSettings();
6868
assert.equal(s.sharingProfile, 'teamIdentified');
@@ -71,9 +71,9 @@ test('getBackendSettings sharingProfile is teamIdentified when shareWithTeam and
7171
test('getBackendSettings sharingProfile is teamPseudonymous when shareWithTeam and pseudonymous', () => {
7272
(vscode as any).__mock.reset();
7373
(vscode as any).__mock.setConfig({
74-
'copilotTokenTracker.backend.enabled': true,
75-
'copilotTokenTracker.backend.shareWithTeam': true,
76-
'copilotTokenTracker.backend.userIdentityMode': 'pseudonymous',
74+
'aiEngineeringFluency.backend.enabled': true,
75+
'aiEngineeringFluency.backend.shareWithTeam': true,
76+
'aiEngineeringFluency.backend.userIdentityMode': 'pseudonymous',
7777
});
7878
const s = getBackendSettings();
7979
assert.equal(s.sharingProfile, 'teamPseudonymous');
@@ -82,7 +82,7 @@ test('getBackendSettings sharingProfile is teamPseudonymous when shareWithTeam a
8282
test('getBackendSettings clamps lookbackDays to minimum', () => {
8383
(vscode as any).__mock.reset();
8484
(vscode as any).__mock.setConfig({
85-
'copilotTokenTracker.backend.lookbackDays': 0,
85+
'aiEngineeringFluency.backend.lookbackDays': 0,
8686
});
8787
const s = getBackendSettings();
8888
assert.ok(s.lookbackDays >= 1);
@@ -91,7 +91,7 @@ test('getBackendSettings clamps lookbackDays to minimum', () => {
9191
test('getBackendSettings defaults empty datasetId to "default"', () => {
9292
(vscode as any).__mock.reset();
9393
(vscode as any).__mock.setConfig({
94-
'copilotTokenTracker.backend.datasetId': ' ',
94+
'aiEngineeringFluency.backend.datasetId': ' ',
9595
});
9696
const s = getBackendSettings();
9797
assert.equal(s.datasetId, 'default');

0 commit comments

Comments
 (0)