Skip to content

Commit 9891c8c

Browse files
committed
refactor(stepFunctions): use globalState abstraction
1 parent 7eff077 commit 9891c8c

File tree

6 files changed

+31
-41
lines changed

6 files changed

+31
-41
lines changed

packages/core/src/stepFunctions/commands/visualizeStateMachine/abstractAslVisualizationManager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export abstract class AbstractAslVisualizationManager<T extends AslVisualization
2020
public constructor(private readonly extensionContext: vscode.ExtensionContext) {}
2121

2222
public abstract visualizeStateMachine(
23-
globalStorage: vscode.Memento,
23+
globalState: vscode.Memento,
2424
uri: vscode.Uri
2525
): Promise<vscode.WebviewPanel | undefined>
2626

@@ -57,9 +57,9 @@ export abstract class AbstractAslVisualizationManager<T extends AslVisualization
5757
return this.managedVisualizations.get(key)
5858
}
5959

60-
protected async updateCache(globalStorage: vscode.Memento, logger: Logger): Promise<void> {
60+
protected async updateCache(globalState: vscode.Memento, logger: Logger): Promise<void> {
6161
try {
62-
await this.cache.updateCache(globalStorage)
62+
await this.cache.updateCache(globalState)
6363
} catch (err) {
6464
// So we can't update the cache, but can we use an existing on disk version.
6565
logger.warn('Updating State Machine Graph Visualisation assets failed, checking for fallback local cache.')

packages/core/src/stepFunctions/commands/visualizeStateMachine/aslVisualizationCDKManager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export class AslVisualizationCDKManager extends AbstractAslVisualizationManager<
1717
}
1818

1919
public async visualizeStateMachine(
20-
globalStorage: vscode.Memento,
20+
globalState: vscode.Memento,
2121
uri: vscode.Uri
2222
): Promise<vscode.WebviewPanel | undefined> {
2323
const logger = getLogger()
@@ -34,7 +34,7 @@ export class AslVisualizationCDKManager extends AbstractAslVisualizationManager<
3434
const templateUri = vscode.Uri.joinPath(cdkOutPath, `${appName}.template.json`)
3535

3636
try {
37-
await this.cache.updateCache(globalStorage)
37+
await this.cache.updateCache(globalState)
3838

3939
const textDocument = await vscode.workspace.openTextDocument(templateUri.with({ fragment: '' }))
4040
const newVisualization = new AslVisualizationCDK(textDocument, templateUri.fsPath, resourceName)

packages/core/src/stepFunctions/commands/visualizeStateMachine/aslVisualizationManager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export class AslVisualizationManager extends AbstractAslVisualizationManager {
1717
}
1818

1919
public async visualizeStateMachine(
20-
globalStorage: vscode.Memento,
20+
globalState: vscode.Memento,
2121
target: vscode.TextDocument | vscode.Uri
2222
): Promise<vscode.WebviewPanel | undefined> {
2323
const logger: Logger = getLogger()
@@ -33,7 +33,7 @@ export class AslVisualizationManager extends AbstractAslVisualizationManager {
3333

3434
// Existing visualization does not exist, construct new visualization
3535
try {
36-
await this.updateCache(globalStorage, logger)
36+
await this.updateCache(globalState, logger)
3737
const newVisualization = new AslVisualization(document)
3838
this.handleNewVisualization(document.uri.fsPath, newVisualization)
3939

packages/core/src/stepFunctions/utils.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const scriptsLastDownloadedUrl = 'SCRIPT_LAST_DOWNLOADED_URL'
3131
const cssLastDownloadedUrl = 'CSS_LAST_DOWNLOADED_URL'
3232

3333
export interface UpdateCachedScriptOptions {
34-
globalStorage: vscode.Memento
34+
globalState: vscode.Memento
3535
lastDownloadedURLKey: string
3636
currentURL: string
3737
filePath: string
@@ -73,9 +73,9 @@ export class StateMachineGraphCache {
7373
this.fileExists = fileExistsCustom ?? fileExists
7474
}
7575

76-
public async updateCache(globalStorage: vscode.Memento): Promise<void> {
76+
public async updateCache(globalState: vscode.Memento): Promise<void> {
7777
const scriptUpdate = this.updateCachedFile({
78-
globalStorage,
78+
globalState: globalState,
7979
lastDownloadedURLKey: scriptsLastDownloadedUrl,
8080
currentURL: visualizationScriptUrl,
8181
filePath: this.jsFilePath,
@@ -87,7 +87,7 @@ export class StateMachineGraphCache {
8787
})
8888

8989
const cssUpdate = this.updateCachedFile({
90-
globalStorage,
90+
globalState: globalState,
9191
lastDownloadedURLKey: cssLastDownloadedUrl,
9292
currentURL: visualizationCssUrl,
9393
filePath: this.cssFilePath,
@@ -102,7 +102,7 @@ export class StateMachineGraphCache {
102102
}
103103

104104
public async updateCachedFile(options: UpdateCachedScriptOptions) {
105-
const downloadedUrl = options.globalStorage.get<string>(options.lastDownloadedURLKey)
105+
const downloadedUrl = options.globalState.get<string>(options.lastDownloadedURLKey)
106106
const cachedFileExists = await this.fileExists(options.filePath)
107107

108108
// if current url is different than url that was previously used to download the assets
@@ -113,7 +113,7 @@ export class StateMachineGraphCache {
113113
await this.writeToLocalStorage(options.filePath, response)
114114

115115
// save the url of the downloaded and cached assets
116-
void options.globalStorage.update(options.lastDownloadedURLKey, options.currentURL)
116+
void options.globalState.update(options.lastDownloadedURLKey, options.currentURL)
117117
}
118118
}
119119

packages/core/src/test/stepFunctions/commands/visualizeStateMachine.test.ts

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import assert from 'assert'
77
import * as sinon from 'sinon'
88
import * as vscode from 'vscode'
9+
import globals from '../../../shared/extensionGlobals'
910
import { Disposable } from 'vscode-languageclient'
1011
import { AslVisualization } from '../../../../src/stepFunctions/commands/visualizeStateMachine/aslVisualization'
1112
import { AslVisualizationManager } from '../../../../src/stepFunctions/commands/visualizeStateMachine/aslVisualizationManager'
1213

1314
import { StateMachineGraphCache } from '../../../stepFunctions/utils'
1415

1516
import { YAML_ASL, JSON_ASL } from '../../../../src/stepFunctions/constants/aslFormats'
16-
import { FakeExtensionContext } from '../../fakeExtensionContext'
1717
import { closeAllEditors } from '../../testUtil'
1818
import { getLogger } from '../../../shared/logger'
1919
import { previewStateMachineCommand } from '../../../stepFunctions/activation'
@@ -22,13 +22,6 @@ import { getTestWindow } from '../../shared/vscode/window'
2222
// Top level defintions
2323
let aslVisualizationManager: AslVisualizationManager
2424

25-
const mockGlobalStorage: vscode.Memento & { setKeysForSync(keys: readonly string[]): void } = {
26-
keys: () => [],
27-
setKeysForSync: (keys: readonly string[]) => undefined,
28-
update: sinon.spy(),
29-
get: sinon.stub().returns(undefined),
30-
}
31-
3225
const mockDataJson =
3326
'{"Comment":"A Hello World example of the Amazon States Language using Pass states","StartAt":"Hello","States":{"Hello":{"Type":"Pass","Result":"Hello","Next":"World"},"World":{"Type":"Pass","Result":"${Text}","End":true}}}'
3427

@@ -61,10 +54,7 @@ describe('StepFunctions VisualizeStateMachine', async function () {
6154
})
6255

6356
beforeEach(async function () {
64-
const fakeExtCtx = await FakeExtensionContext.create()
65-
fakeExtCtx.globalState = mockGlobalStorage
66-
fakeExtCtx.workspaceState = mockGlobalStorage
67-
aslVisualizationManager = new AslVisualizationManager(fakeExtCtx)
57+
aslVisualizationManager = new AslVisualizationManager(globals.context)
6858
})
6959

7060
after(async function () {
@@ -100,7 +90,7 @@ describe('StepFunctions VisualizeStateMachine', async function () {
10090
const doc = await getDoc1()
10191
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
10292

103-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc)
93+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc)
10494
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
10595

10696
const managedVisualizations = aslVisualizationManager.getManagedVisualizations()
@@ -111,10 +101,10 @@ describe('StepFunctions VisualizeStateMachine', async function () {
111101
const doc = await getDoc1()
112102
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
113103

114-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc)
104+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc)
115105
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
116106

117-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc)
107+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc)
118108
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
119109

120110
const managedVisualizations = aslVisualizationManager.getManagedVisualizations()
@@ -127,10 +117,10 @@ describe('StepFunctions VisualizeStateMachine', async function () {
127117

128118
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
129119

130-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc1)
120+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc1)
131121
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
132122

133-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc2)
123+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc2)
134124
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 2)
135125

136126
const managedVisualizations = aslVisualizationManager.getManagedVisualizations()
@@ -144,16 +134,16 @@ describe('StepFunctions VisualizeStateMachine', async function () {
144134

145135
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
146136

147-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc1)
137+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc1)
148138
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
149139

150-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc2)
140+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc2)
151141
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 2)
152142

153-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc1)
143+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc1)
154144
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 2)
155145

156-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc2)
146+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc2)
157147
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 2)
158148

159149
const managedVisualizations = aslVisualizationManager.getManagedVisualizations()
@@ -164,7 +154,7 @@ describe('StepFunctions VisualizeStateMachine', async function () {
164154
it('Test AslVisualizationManager managedVisualizations set removes visualization on visualization dispose, single vis', async function () {
165155
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
166156

167-
let panel = await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, await getDoc1())
157+
let panel = await aslVisualizationManager.visualizeStateMachine(globals.globalState, await getDoc1())
168158
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
169159

170160
// Dispose of visualization panel
@@ -181,10 +171,10 @@ describe('StepFunctions VisualizeStateMachine', async function () {
181171

182172
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 0)
183173

184-
let panel = await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc1)
174+
let panel = await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc1)
185175
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 1)
186176

187-
await aslVisualizationManager.visualizeStateMachine(mockGlobalStorage, doc2)
177+
await aslVisualizationManager.visualizeStateMachine(globals.globalState, doc2)
188178
assert.strictEqual(aslVisualizationManager.getManagedVisualizations().size, 2)
189179

190180
// Dispose of first visualization panel

packages/core/src/test/stepFunctions/utils.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe('StateMachineGraphCache', function () {
4949
})
5050

5151
await cache.updateCachedFile({
52-
globalStorage,
52+
globalState: globalStorage,
5353
lastDownloadedURLKey: storageKey,
5454
currentURL: assetUrl,
5555
filePath: filePath,
@@ -81,7 +81,7 @@ describe('StateMachineGraphCache', function () {
8181
})
8282

8383
await cache.updateCachedFile({
84-
globalStorage,
84+
globalState: globalStorage,
8585
lastDownloadedURLKey: storageKey,
8686
currentURL: assetUrl,
8787
filePath: filePath,
@@ -113,7 +113,7 @@ describe('StateMachineGraphCache', function () {
113113
})
114114

115115
await cache.updateCachedFile({
116-
globalStorage,
116+
globalState: globalStorage,
117117
lastDownloadedURLKey: storageKey,
118118
currentURL: assetUrl,
119119
filePath: filePath,
@@ -185,7 +185,7 @@ describe('StateMachineGraphCache', function () {
185185
})
186186

187187
await cache.updateCachedFile({
188-
globalStorage,
188+
globalState: globalStorage,
189189
lastDownloadedURLKey: storageKey,
190190
currentURL: assetUrl,
191191
filePath: filePath,

0 commit comments

Comments
 (0)