Skip to content

Commit 255f7ea

Browse files
authored
Merge pull request #5137 from Shopify/make-organization-source-required
Make organization source required
2 parents 0401f70 + 71e4c8e commit 255f7ea

File tree

10 files changed

+35
-18
lines changed

10 files changed

+35
-18
lines changed

packages/app/src/cli/models/organization.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export enum OrganizationSource {
99
export interface Organization {
1010
id: string
1111
businessName: string
12-
source?: OrganizationSource
12+
source: OrganizationSource
1313
}
1414

1515
export interface AppApiKeyAndOrgId {

packages/app/src/cli/prompts/dev.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
selectStorePrompt,
88
updateURLsPrompt,
99
} from './dev.js'
10-
import {Organization, OrganizationStore} from '../models/organization.js'
10+
import {Organization, OrganizationSource, OrganizationStore} from '../models/organization.js'
1111
import {testDeveloperPlatformClient, testOrganizationApp} from '../models/app/app.test-data.js'
1212
import {getTomls} from '../utilities/app/config/getTomls.js'
1313
import {searchForAppsByNameFactory} from '../services/dev/prompt-helpers.js'
@@ -21,10 +21,12 @@ vi.mock('../utilities/app/config/getTomls')
2121
const ORG1: Organization = {
2222
id: '1',
2323
businessName: 'org1',
24+
source: OrganizationSource.BusinessPlatform,
2425
}
2526
const ORG2: Organization = {
2627
id: '2',
2728
businessName: 'org2',
29+
source: OrganizationSource.BusinessPlatform,
2830
}
2931
const APP1 = testOrganizationApp({apiKey: 'key1'})
3032
const APP2 = testOrganizationApp({

packages/app/src/cli/services/app/config/link-service.test.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import link from './link.js'
22
import {testOrganizationApp, testDeveloperPlatformClient} from '../../../models/app/app.test-data.js'
33
import {DeveloperPlatformClient, selectDeveloperPlatformClient} from '../../../utilities/developer-platform-client.js'
4-
import {AppApiKeyAndOrgId, OrganizationApp} from '../../../models/organization.js'
4+
import {AppApiKeyAndOrgId, OrganizationApp, OrganizationSource} from '../../../models/organization.js'
55
import {appNamePrompt, createAsNewAppPrompt, selectOrganizationPrompt} from '../../../prompts/dev.js'
66
import {beforeEach, describe, expect, test, vi} from 'vitest'
77
import {inTemporaryDirectory, readFile, writeFileSync} from '@shopify/cli-kit/node/fs'
@@ -27,7 +27,11 @@ function buildDeveloperPlatformClient(): DeveloperPlatformClient {
2727
}
2828
},
2929
async orgAndApps(orgId) {
30-
return {organization: {id: orgId, businessName: 'test'}, apps: [mockRemoteApp()], hasMorePages: false}
30+
return {
31+
organization: {id: orgId, businessName: 'test', source: OrganizationSource.BusinessPlatform},
32+
apps: [mockRemoteApp()],
33+
hasMorePages: false,
34+
}
3135
},
3236
async createApp(org, name, options) {
3337
return testOrganizationApp({
@@ -58,7 +62,11 @@ describe('link, with minimal mocking', () => {
5862
vi.mocked(selectDeveloperPlatformClient).mockReturnValue(developerPlatformClient)
5963
vi.mocked(createAsNewAppPrompt).mockResolvedValue(true)
6064
vi.mocked(appNamePrompt).mockResolvedValue('A user provided name')
61-
vi.mocked(selectOrganizationPrompt).mockResolvedValue({id: '12345', businessName: 'test'})
65+
vi.mocked(selectOrganizationPrompt).mockResolvedValue({
66+
id: '12345',
67+
businessName: 'test',
68+
source: OrganizationSource.BusinessPlatform,
69+
})
6270

6371
const options = {
6472
directory: tmp,

packages/app/src/cli/services/app/env/show.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {fetchOrganizations} from '../../dev/fetch.js'
33
import {AppInterface} from '../../../models/app/app.js'
44
import {selectOrganizationPrompt} from '../../../prompts/dev.js'
55
import {testApp, testOrganizationApp} from '../../../models/app/app.test-data.js'
6+
import {OrganizationSource} from '../../../models/organization.js'
67
import {describe, expect, vi, test} from 'vitest'
78
import * as file from '@shopify/cli-kit/node/fs'
89
import {stringifyMessage, unstyled} from '@shopify/cli-kit/node/output'
@@ -23,6 +24,7 @@ describe('env show', () => {
2324
id: '123',
2425
flags: {},
2526
businessName: 'test',
27+
source: OrganizationSource.BusinessPlatform,
2628
apps: {nodes: []},
2729
}
2830
const organizationApp = testOrganizationApp()

packages/app/src/cli/services/dev/select-app.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {selectOrCreateApp} from './select-app.js'
22
import {AppInterface, WebType} from '../../models/app/app.js'
3-
import {AppApiKeyAndOrgId, Organization} from '../../models/organization.js'
3+
import {AppApiKeyAndOrgId, Organization, OrganizationSource} from '../../models/organization.js'
44
import {appNamePrompt, createAsNewAppPrompt, selectAppPrompt} from '../../prompts/dev.js'
55
import {testApp, testOrganizationApp, testDeveloperPlatformClient} from '../../models/app/app.test-data.js'
66
import {describe, expect, vi, test} from 'vitest'
@@ -25,6 +25,7 @@ const LOCAL_APP: AppInterface = testApp({
2525
const ORG1: Organization = {
2626
id: '1',
2727
businessName: 'org1',
28+
source: OrganizationSource.BusinessPlatform,
2829
}
2930
const APP1 = testOrganizationApp({apiKey: 'key1'})
3031
const APP2 = testOrganizationApp({

packages/app/src/cli/services/dev/select-store.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {selectStore} from './select-store.js'
2-
import {Organization, OrganizationStore} from '../../models/organization.js'
2+
import {Organization, OrganizationSource, OrganizationStore} from '../../models/organization.js'
33
import {
44
reloadStoreListPrompt,
55
selectStorePrompt,
@@ -20,6 +20,7 @@ vi.mock('@shopify/cli-kit/node/context/spin')
2020
const ORG1: Organization = {
2121
id: '1',
2222
businessName: 'org1',
23+
source: OrganizationSource.BusinessPlatform,
2324
}
2425
const STORE1: OrganizationStore = {
2526
shopId: '1',

packages/app/src/cli/services/info.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {InfoOptions, info} from './info.js'
22
import {AppInterface, AppLinkedInterface} from '../models/app/app.js'
3-
import {AppApiKeyAndOrgId, OrganizationApp} from '../models/organization.js'
3+
import {AppApiKeyAndOrgId, OrganizationApp, OrganizationSource} from '../models/organization.js'
44
import {selectOrganizationPrompt} from '../prompts/dev.js'
55
import {
66
testDeveloperPlatformClient,
@@ -30,6 +30,7 @@ const ORG1 = {
3030
flags: {},
3131
businessName: 'test',
3232
apps: {nodes: []},
33+
source: OrganizationSource.BusinessPlatform,
3334
}
3435

3536
function buildDeveloperPlatformClient(): DeveloperPlatformClient {

packages/app/src/cli/services/versions-list.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import versionList from './versions-list.js'
22
import {renderCurrentlyUsedConfigInfo} from './context.js'
33
import {testAppLinked, testDeveloperPlatformClient, testOrganizationApp} from '../models/app/app.test-data.js'
4-
import {Organization} from '../models/organization.js'
4+
import {Organization, OrganizationSource} from '../models/organization.js'
55
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
66
import {AppVersionsQuerySchema} from '../api/graphql/get_versions_list.js'
77
import {afterEach, describe, expect, test, vi} from 'vitest'
@@ -17,6 +17,7 @@ afterEach(() => {
1717
const ORG1: Organization = {
1818
id: 'org-id',
1919
businessName: 'name of org 1',
20+
source: OrganizationSource.BusinessPlatform,
2021
}
2122

2223
const remoteApp = testOrganizationApp({organizationId: ORG1.id, apiKey: 'api-key', title: 'app-title', id: 'app-id'})

packages/app/src/cli/utilities/developer-platform-client/partners-client.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {PartnersClient} from './partners-client.js'
22
import {CreateAppQuery} from '../../api/graphql/create_app.js'
33
import {AppInterface, WebType} from '../../models/app/app.js'
4-
import {Organization, OrganizationStore} from '../../models/organization.js'
4+
import {Organization, OrganizationSource, OrganizationStore} from '../../models/organization.js'
55
import {
66
testPartnersUserSession,
77
testApp,
@@ -32,11 +32,13 @@ const LOCAL_APP: AppInterface = testApp({
3232
name: 'my-app',
3333
})
3434

35-
const ORG1: Organization = {
35+
type OrganizationInPartnersResponse = Omit<Organization, 'source'>
36+
37+
const ORG1: OrganizationInPartnersResponse = {
3638
id: '1',
3739
businessName: 'org1',
3840
}
39-
const ORG2: Organization = {
41+
const ORG2: OrganizationInPartnersResponse = {
4042
id: '2',
4143
businessName: 'org2',
4244
}
@@ -88,7 +90,7 @@ describe('createApp', () => {
8890
}
8991

9092
// When
91-
const got = await partnersClient.createApp(ORG1, localApp.name, {
93+
const got = await partnersClient.createApp({...ORG1, source: OrganizationSource.Partners}, localApp.name, {
9294
scopesArray: ['write_products'],
9395
isLaunchable: true,
9496
})
@@ -113,7 +115,7 @@ describe('createApp', () => {
113115
}
114116

115117
// When
116-
const got = await partnersClient.createApp(ORG1, LOCAL_APP.name, {
118+
const got = await partnersClient.createApp({...ORG1, source: OrganizationSource.Partners}, LOCAL_APP.name, {
117119
isLaunchable: false,
118120
scopesArray: ['write_products'],
119121
})
@@ -132,7 +134,7 @@ describe('createApp', () => {
132134
})
133135

134136
// When
135-
const got = partnersClient.createApp(ORG2, LOCAL_APP.name)
137+
const got = partnersClient.createApp({...ORG2, source: OrganizationSource.Partners}, LOCAL_APP.name)
136138

137139
// Then
138140
await expect(got).rejects.toThrow(`some-error`)

packages/app/src/cli/utilities/developer-platform-client/partners-client.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,8 @@ export class PartnersClient implements DeveloperPlatformClient {
298298
async orgFromId(orgId: string): Promise<Organization | undefined> {
299299
const variables: FindOrganizationBasicVariables = {id: orgId}
300300
const result: FindOrganizationBasicQuerySchema = await this.request(FindOrganizationBasicQuery, variables)
301-
const org: Organization | undefined = result.organizations.nodes[0]
302-
if (org) org.source = OrganizationSource.Partners
303-
return org
301+
const org: Omit<Organization, 'source'> | undefined = result.organizations.nodes[0]
302+
return org ? {...org, source: OrganizationSource.Partners} : undefined
304303
}
305304

306305
async orgAndApps(orgId: string): Promise<Paginateable<{organization: Organization; apps: MinimalOrganizationApp[]}>> {

0 commit comments

Comments
 (0)