Skip to content

Commit 806ef3b

Browse files
Copiloteleanorjboyd
andcommitted
Apply automatic refresh to all environment managers, not just Pipenv
Co-authored-by: eleanorjboyd <26030610+eleanorjboyd@users.noreply.github.com>
1 parent 490071a commit 806ef3b

2 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/features/views/envManagersView.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,8 @@ export class EnvManagerView implements TreeDataProvider<EnvTreeItem>, Disposable
9696
const manager = (element as EnvManagerTreeItem).manager;
9797
const views: EnvTreeItem[] = [];
9898

99-
// Refresh Pipenv manager when expanded to pick up newly created environments
100-
if (manager.name === 'pipenv') {
101-
await manager.refresh(undefined);
102-
}
99+
// Refresh manager when expanded to pick up newly created environments
100+
await manager.refresh(undefined);
103101

104102
const envs = await manager.getEnvironments('all');
105103
envs.filter((e) => !e.group).forEach((env) => {

src/test/features/views/envManagersView.unit.test.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import * as sinon from 'sinon';
33
import { InternalEnvironmentManager } from '../../../internal.api';
44

55
suite('EnvManagerView Logic Tests', () => {
6-
test('Pipenv manager should be identified by name', () => {
7-
// Create pipenv manager with correct name
6+
test('All managers should have refresh method', () => {
7+
// Create pipenv manager
88
const pipenvManager = new InternalEnvironmentManager('pipenv-manager', {
99
name: 'pipenv',
1010
displayName: 'Pipenv',
@@ -17,30 +17,32 @@ suite('EnvManagerView Logic Tests', () => {
1717
get: () => Promise.resolve(undefined),
1818
});
1919

20-
// Create other manager with different name
21-
const otherManager = new InternalEnvironmentManager('other-manager', {
22-
name: 'other',
23-
displayName: 'Other',
24-
description: 'Other environment manager',
25-
preferredPackageManagerId: 'pip',
20+
// Create other manager
21+
const condaManager = new InternalEnvironmentManager('conda-manager', {
22+
name: 'conda',
23+
displayName: 'Conda',
24+
description: 'Conda environment manager',
25+
preferredPackageManagerId: 'conda',
2626
refresh: () => Promise.resolve(),
2727
getEnvironments: () => Promise.resolve([]),
2828
resolve: () => Promise.resolve(undefined),
2929
set: () => Promise.resolve(),
3030
get: () => Promise.resolve(undefined),
3131
});
3232

33-
// Test that pipenv manager is correctly identified
33+
// Test that both managers have the required properties
3434
assert.strictEqual(pipenvManager.name, 'pipenv');
35-
assert.strictEqual(otherManager.name, 'other');
35+
assert.strictEqual(condaManager.name, 'conda');
36+
assert.ok(typeof pipenvManager.refresh === 'function');
37+
assert.ok(typeof condaManager.refresh === 'function');
3638
});
3739

38-
test('Refresh method exists on manager and can be called', async () => {
40+
test('Refresh method exists on any manager and can be called', async () => {
3941
const refreshSpy = sinon.spy();
4042

4143
const manager = new InternalEnvironmentManager('test-manager', {
42-
name: 'pipenv',
43-
displayName: 'Pipenv',
44+
name: 'any-manager',
45+
displayName: 'Any Manager',
4446
description: 'Test manager',
4547
preferredPackageManagerId: 'pip',
4648
refresh: refreshSpy,

0 commit comments

Comments
 (0)