Skip to content

Commit c71dc4a

Browse files
authored
Remove RegionNode interface and replace with DefaultRegionNode class (#798)
1 parent 271e881 commit c71dc4a

File tree

6 files changed

+19
-33
lines changed

6 files changed

+19
-33
lines changed

src/awsexplorer/awsExplorer.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@ import { RefreshableAwsTreeProvider } from '../shared/treeview/awsTreeProvider'
2222
import { AWSCommandTreeNode } from '../shared/treeview/nodes/awsCommandTreeNode'
2323
import { AWSTreeNodeBase } from '../shared/treeview/nodes/awsTreeNodeBase'
2424
import { ErrorNode } from '../shared/treeview/nodes/errorNode'
25-
import { RegionNode } from '../shared/treeview/nodes/regionNode'
2625
import { showErrorDetails } from '../shared/treeview/webviews/showErrorDetails'
2726
import { intersection, toMap, updateInPlace } from '../shared/utilities/collectionUtils'
2827
import { localize } from '../shared/utilities/vsCodeUtils'
29-
import { DefaultRegionNode } from './defaultRegionNode'
28+
import { RegionNode } from './regionNode'
3029

3130
export class AwsExplorer implements vscode.TreeDataProvider<AWSTreeNodeBase>, RefreshableAwsTreeProvider {
3231
public viewProviderId: string = 'aws.explorer'
@@ -159,7 +158,7 @@ export class AwsExplorer implements vscode.TreeDataProvider<AWSTreeNodeBase>, Re
159158
this.regionNodes,
160159
intersection(regionMap.keys(), explorerRegionCodes),
161160
key => this.regionNodes.get(key)!.update(regionMap.get(key)!),
162-
key => new DefaultRegionNode(regionMap.get(key)!)
161+
key => new RegionNode(regionMap.get(key)!)
163162
)
164163

165164
if (this.regionNodes.size > 0) {

src/awsexplorer/defaultRegionNode.ts renamed to src/awsexplorer/regionNode.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ import { CloudFormationNode, DefaultCloudFormationNode } from '../lambda/explore
88
import { DefaultLambdaFunctionGroupNode, LambdaFunctionGroupNode } from '../lambda/explorer/lambdaNodes'
99
import { RegionInfo } from '../shared/regions/regionInfo'
1010
import { AWSTreeNodeBase } from '../shared/treeview/nodes/awsTreeNodeBase'
11-
import { RegionNode } from '../shared/treeview/nodes/regionNode'
1211
import { toMap, updateInPlace } from '../shared/utilities/collectionUtils'
1312

14-
// Collects the regions the user has declared they want to work with;
15-
// on expansion each region lists the functions and CloudFormation Stacks
16-
// the user has available in that region.
17-
export class DefaultRegionNode extends AWSTreeNodeBase implements RegionNode {
13+
/**
14+
* An AWS Explorer node representing a region.
15+
* Contains resource types as child nodes (for example, nodes representing
16+
* an account's Lambda Functions and CloudFormation stacks for this region)
17+
*/
18+
export class RegionNode extends AWSTreeNodeBase {
1819
private info: RegionInfo
1920
private readonly cloudFormationNode: CloudFormationNode
2021
private readonly lambdaFunctionGroupNode: LambdaFunctionGroupNode
@@ -62,7 +63,7 @@ export class RegionNodeCollection {
6263
this.regionNodes,
6364
regionMap.keys(),
6465
key => this.regionNodes.get(key)!.update(regionMap.get(key)!),
65-
key => new DefaultRegionNode(regionMap.get(key)!)
66+
key => new RegionNode(regionMap.get(key)!)
6667
)
6768
}
6869
}

src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import * as vscode from 'vscode'
77
import * as nls from 'vscode-nls'
88

99
import { AwsExplorer } from './awsexplorer/awsExplorer'
10+
import { RegionNode } from './awsexplorer/regionNode'
1011
import { DefaultAWSClientBuilder } from './shared/awsClientBuilder'
1112
import { AwsContextTreeCollection } from './shared/awsContextTreeCollection'
1213
import { DefaultToolkitClientBuilder } from './shared/clients/defaultToolkitClientBuilder'
@@ -29,7 +30,6 @@ import { AwsTelemetryOptOut } from './shared/telemetry/awsTelemetryOptOut'
2930
import { DefaultTelemetryService } from './shared/telemetry/defaultTelemetryService'
3031
import { TelemetryNamespace } from './shared/telemetry/telemetryTypes'
3132
import { registerCommand } from './shared/telemetry/telemetryUtils'
32-
import { RegionNode } from './shared/treeview/nodes/regionNode'
3333
import { ExtensionDisposableFiles } from './shared/utilities/disposableFiles'
3434
import { getChannelLogger } from './shared/utilities/vsCodeUtils'
3535

src/shared/treeview/nodes/regionNode.ts

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/test/awsExplorer/awsExplorer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import * as assert from 'assert'
77
import { AwsExplorer } from '../../awsexplorer/awsExplorer'
8+
import { RegionNode } from '../../awsexplorer/regionNode'
89
import { AwsContextTreeCollection } from '../../shared/awsContextTreeCollection'
9-
import { RegionNode } from '../../shared/treeview/nodes/regionNode'
1010
import { MockOutputChannel } from '../mockOutputChannel'
1111
import {
1212
DEFAULT_TEST_REGION_CODE,

src/test/awsExplorer/defaultRegionNode.test.ts renamed to src/test/awsExplorer/regionNode.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@
44
*/
55

66
import * as assert from 'assert'
7-
import { DefaultRegionNode } from '../../awsexplorer/defaultRegionNode'
7+
import { RegionNode } from '../../awsexplorer/regionNode'
88
import { RegionInfo } from '../../shared/regions/regionInfo'
99

10-
// TODO: create test for getChildren() after mocking is introduced
11-
describe('DefaultRegionNode', () => {
10+
describe('RegionNode', () => {
1211
const regionCode = 'us-east-1'
1312
const regionName = 'US East (N. Virginia)'
13+
const testNode = new RegionNode(new RegionInfo(regionCode, regionName))
1414

15-
// Validates we tagged the node correctly
1615
it('initializes name and tooltip', async () => {
17-
const testNode = new DefaultRegionNode(new RegionInfo(regionCode, regionName))
18-
1916
assert.strictEqual(testNode.label, regionName)
2017
assert.strictEqual(testNode.tooltip, `${regionName} [${regionCode}]`)
2118
})
19+
20+
it('contains children', async () => {
21+
const childNodes = await testNode.getChildren()
22+
assert.ok(childNodes.length > 0, 'Expected region node to have child nodes')
23+
})
2224
})

0 commit comments

Comments
 (0)