Skip to content

Commit

Permalink
Link overwrites redirect urls
Browse files Browse the repository at this point in the history
  • Loading branch information
alvaro-shopify committed Feb 5, 2024
1 parent 6556932 commit f3210b8
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/slow-kiwis-beg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@shopify/app': patch
---

Link overwrites redirect urls
55 changes: 55 additions & 0 deletions packages/app/src/cli/services/app/config/link.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -778,6 +778,61 @@ redirect_urls = [ "https://example.com/callback1" ]
[webhooks]
api_version = "2023-07"
[pos]
embedded = false
`
expect(content).toEqual(expectedContent)
})
})

test('replace arrays content with the remote one', async () => {
await inTemporaryDirectory(async (tmp) => {
// Given
const options: LinkOptions = {
directory: tmp,
commandConfig: {runHook: vi.fn(() => Promise.resolve({successes: []}))} as unknown as Config,
}
vi.mocked(loadApp).mockResolvedValue(await mockApp(tmp))
vi.mocked(fetchOrCreateOrganizationApp).mockResolvedValue(mockRemoteApp())
vi.mocked(fetchAppExtensionRegistrations).mockResolvedValue({
app: {
extensionRegistrations: [],
configurationRegistrations: [
{
type: 'app_access',
id: '321',
uuid: '321',
title: 'app_access',
activeVersion: {
config: JSON.stringify({redirect_url_allowlist: ['https://example.com/remote']}),
},
},
],
dashboardManagedExtensionRegistrations: [],
},
})
// When
await link(options)

// Then
const content = await readFile(joinPath(tmp, 'shopify.app.toml'))
const expectedContent = `# Learn more about configuring your app at https://shopify.dev/docs/apps/tools/cli/configuration
client_id = "12345"
name = "app1"
application_url = "https://example.com"
embedded = true
[access_scopes]
# Learn more at https://shopify.dev/docs/apps/tools/cli/configuration#access_scopes
use_legacy_install_flow = true
[auth]
redirect_urls = [ "https://example.com/remote" ]
[webhooks]
api_version = "2023-07"
[pos]
embedded = false
`
Expand Down
3 changes: 2 additions & 1 deletion packages/app/src/cli/services/app/config/link.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ export default async function link(options: LinkOptions, shouldRenderSuccess = t
remoteApp,
localApp,
)
configuration = deepMergeObjects(configuration, remoteAppConfigurationFromExtensions)
const replaceLocalArrayStrategy = (_destinationArray: unknown[], sourceArray: unknown[]) => sourceArray
configuration = deepMergeObjects(configuration, remoteAppConfigurationFromExtensions, replaceLocalArrayStrategy)
}

await writeAppConfigurationFile(configuration, localApp.configSchema)
Expand Down

0 comments on commit f3210b8

Please sign in to comment.