Skip to content

Commit 1b23816

Browse files
authored
fix(knowledge): preserve permission warnings in combined notices (#7923)
1 parent 1a59ca1 commit 1b23816

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

‎apps/sim/app/o/[organizationId]/settings/integrations/sources/[connectorId]/source-detail.test.tsx‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,32 @@ describe('organization source detail navigation', () => {
292292
}
293293
)
294294

295+
it.each(['active', 'pending', 'syncing'] as const)(
296+
'keeps permission warnings visible alongside other sync notices while %s',
297+
async (status) => {
298+
mocks.detail.mockReturnValue({
299+
data: {
300+
...connector,
301+
accessMode: 'admin',
302+
status,
303+
lastSyncError: [
304+
'Directory refresh incomplete: Private directory details',
305+
'Source listing failed for 1 account. Private account details',
306+
SOURCE_PERMISSION_ERROR,
307+
].join('\n'),
308+
},
309+
})
310+
await render()
311+
expect(container.textContent).toContain('Permission verification incomplete')
312+
expect(container.textContent).toContain(SOURCE_PERMISSION_ERROR)
313+
expect(container.textContent).not.toContain('Private directory details')
314+
expect(container.textContent).not.toContain('Private account details')
315+
expect(container.textContent).not.toContain(
316+
'Review the connection settings and try syncing again.'
317+
)
318+
}
319+
)
320+
295321
it.each(['', '?view=settings', '?view=history'])(
296322
'shows integration deactivation independently of source sync state at %s',
297323
async (searchParams) => {

‎apps/sim/app/o/[organizationId]/settings/integrations/sources/[connectorId]/source-detail.tsx‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ function SourceDetailContent({
187187
? describeSearchSource(meta, connector.sourceConfig) || meta.name
188188
: 'Connection'
189189
const { effectiveStatus, lastSyncError } = getConnectorSyncState(connector)
190-
const permissionsIncomplete = connector.lastSyncError === SOURCE_PERMISSION_ERROR
190+
const permissionsIncomplete =
191+
connector.lastSyncError?.split('\n').includes(SOURCE_PERMISSION_ERROR) ?? false
191192
const status =
192193
effectiveStatus === 'paused'
193194
? 'Sync paused'

0 commit comments

Comments
 (0)