Skip to content

Commit c9d1937

Browse files
committed
Inline store analytics user-id helper
1 parent 215ba82 commit c9d1937

6 files changed

Lines changed: 11 additions & 23 deletions

File tree

packages/store/src/cli/services/store/auth/index.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {authenticateStoreWithApp} from './index.js'
22
import {setStoredStoreAppSession} from './session-store.js'
33
import {STORE_AUTH_APP_CLIENT_ID} from './config.js'
4-
import {recordStoreCommandUserId} from '../metrics.js'
4+
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
55
import {describe, expect, test, vi} from 'vitest'
66

77
vi.mock('./session-store.js')
8-
vi.mock('../metrics.js')
8+
vi.mock('@shopify/cli-kit/node/session')
99
vi.mock('@shopify/cli-kit/node/system', () => ({openURL: vi.fn().mockResolvedValue(true)}))
1010
vi.mock('@shopify/cli-kit/node/crypto', () => ({randomUUID: vi.fn().mockReturnValue('state-123')}))
1111

@@ -54,7 +54,7 @@ describe('store auth service', () => {
5454
}),
5555
)
5656
expect(presenter.success).toHaveBeenCalledWith(result)
57-
expect(recordStoreCommandUserId).toHaveBeenCalledWith('42')
57+
expect(setLastSeenUserId).toHaveBeenCalledWith('42')
5858

5959
const storedSession = vi.mocked(setStoredStoreAppSession).mock.calls[0]![0]
6060
expect(storedSession.store).toBe('shop.myshopify.com')

packages/store/src/cli/services/store/auth/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {createPkceBootstrap} from './pkce.js'
66
import {mergeRequestedAndStoredScopes, parseStoreAuthScopes, resolveGrantedScopes} from './scopes.js'
77
import {resolveExistingStoreAuthScopes, type ResolvedStoreAuthScopes} from './existing-scopes.js'
88
import {createStoreAuthPresenter, type StoreAuthPresenter, type StoreAuthResult} from './result.js'
9-
import {recordStoreCommandUserId} from '../metrics.js'
9+
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
1010
import {openURL} from '@shopify/cli-kit/node/system'
1111
import {outputContent, outputDebug, outputToken} from '@shopify/cli-kit/node/output'
1212
import {AbortError} from '@shopify/cli-kit/node/error'
@@ -74,7 +74,7 @@ export async function authenticateStoreWithApp(
7474
if (!userId) {
7575
throw new AbortError('Shopify did not return associated user information for the online access token.')
7676
}
77-
recordStoreCommandUserId(userId)
77+
setLastSeenUserId(userId)
7878

7979
const now = Date.now()
8080
const expiresAt = tokenResponse.expires_in ? new Date(now + tokenResponse.expires_in * 1000).toISOString() : undefined

packages/store/src/cli/services/store/execute/admin-context.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import {prepareAdminStoreGraphQLContext} from './admin-context.js'
22
import {fetchPublicApiVersions} from './admin-transport.js'
33
import {loadStoredStoreSession} from '../auth/session-lifecycle.js'
44
import {STORE_AUTH_APP_CLIENT_ID} from '../auth/config.js'
5-
import {recordStoreCommandUserId} from '../metrics.js'
65
import {AbortError} from '@shopify/cli-kit/node/error'
6+
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
77
import {beforeEach, describe, expect, test, vi} from 'vitest'
88

99
vi.mock('../auth/session-lifecycle.js', () => ({loadStoredStoreSession: vi.fn()}))
10-
vi.mock('../metrics.js')
10+
vi.mock('@shopify/cli-kit/node/session')
1111
vi.mock('./admin-transport.js', () => ({
1212
fetchPublicApiVersions: vi.fn(),
1313
// runAdminStoreGraphQLOperation isn't exercised here, but we re-export it for type completeness.
@@ -39,7 +39,7 @@ describe('prepareAdminStoreGraphQLContext', () => {
3939
const result = await prepareAdminStoreGraphQLContext({store})
4040

4141
expect(loadStoredStoreSession).toHaveBeenCalledWith(store)
42-
expect(recordStoreCommandUserId).toHaveBeenCalledWith('42')
42+
expect(setLastSeenUserId).toHaveBeenCalledWith('42')
4343
expect(fetchPublicApiVersions).toHaveBeenCalledWith({
4444
adminSession: {token: 'token', storeFqdn: store},
4545
session: storedSession,

packages/store/src/cli/services/store/execute/admin-context.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {fetchPublicApiVersions} from './admin-transport.js'
22
import {loadStoredStoreSession} from '../auth/session-lifecycle.js'
3-
import {recordStoreCommandUserId} from '../metrics.js'
43
import {AbortError} from '@shopify/cli-kit/node/error'
4+
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
55
import type {AdminSession} from '@shopify/cli-kit/node/session'
66
import type {StoredStoreAppSession} from '../auth/session-store.js'
77

@@ -38,7 +38,7 @@ export async function prepareAdminStoreGraphQLContext(input: {
3838
userSpecifiedVersion?: string
3939
}): Promise<AdminStoreGraphQLContext> {
4040
const session = await loadStoredStoreSession(input.store)
41-
recordStoreCommandUserId(session.userId)
41+
setLastSeenUserId(session.userId)
4242
const adminSession = {
4343
token: session.accessToken,
4444
storeFqdn: session.store,
Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import {recordStoreCommandUserId, recordStoreFqdnMetadata} from './metrics.js'
1+
import {recordStoreFqdnMetadata} from './metrics.js'
22
import {hashString} from '@shopify/cli-kit/node/crypto'
33
import {addPublicMetadata} from '@shopify/cli-kit/node/metadata'
4-
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
54
import {beforeEach, describe, expect, test, vi} from 'vitest'
65

76
vi.mock('@shopify/cli-kit/node/crypto')
87
vi.mock('@shopify/cli-kit/node/metadata')
9-
vi.mock('@shopify/cli-kit/node/session')
108

119
describe('store command metrics', () => {
1210
beforeEach(() => {
@@ -22,9 +20,4 @@ describe('store command metrics', () => {
2220
expect(hashString).toHaveBeenCalledWith('shop.myshopify.com')
2321
})
2422

25-
test('sets the command analytics user id from store auth identity', () => {
26-
recordStoreCommandUserId('42')
27-
28-
expect(setLastSeenUserId).toHaveBeenCalledWith('42')
29-
})
3023
})
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import {hashString} from '@shopify/cli-kit/node/crypto'
22
import {addPublicMetadata} from '@shopify/cli-kit/node/metadata'
3-
import {setLastSeenUserId} from '@shopify/cli-kit/node/session'
43

54
export async function recordStoreFqdnMetadata(storeFqdn: string): Promise<void> {
65
await addPublicMetadata(() => ({store_fqdn_hash: hashString(storeFqdn)}))
76
}
8-
9-
export function recordStoreCommandUserId(userId: string): void {
10-
setLastSeenUserId(userId)
11-
}

0 commit comments

Comments
 (0)