Skip to content

Commit d6dace1

Browse files
committed
Fix not being able to see some templates
1 parent 5098c51 commit d6dace1

File tree

2 files changed

+44
-5
lines changed

2 files changed

+44
-5
lines changed

packages/server/lib/controllers/v1/integrations/providerConfigKey/flows/getFlows.integration.test.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,48 @@ describe(`GET ${route}`, () => {
124124
const scriptListFile = res.json.data.flows.find((value) => value.name === 'list-files');
125125
expect(scriptListFile).not.toBeUndefined();
126126
});
127+
128+
it('should keep renamed templates visible when an older sync with the same model name exists', async () => {
129+
const { env, secret } = await seeders.seedAccountEnvAndUser();
130+
const config = await seeders.createConfigSeed(env, 'hubspot', 'hubspot');
131+
const connection = await seeders.createConnectionSeed({ env, provider: 'hubspot' });
132+
133+
await seeders.createSyncSeeds({
134+
connectionId: connection.id,
135+
environment_id: env.id,
136+
nango_config_id: config.id!,
137+
sync_name: 'users',
138+
type: 'sync',
139+
models: ['User'],
140+
endpoints: [{ group: 'Users', method: 'GET', path: '/users' }]
141+
});
142+
143+
const res = await api.fetch(route, {
144+
method: 'GET',
145+
query: { env: 'dev' },
146+
params: { providerConfigKey: 'hubspot' },
147+
token: secret.secret
148+
});
149+
150+
expect(res.res.status).toBe(200);
151+
isSuccess(res.json);
152+
153+
const oldFlow = res.json.data.flows.find((value) => value.name === 'users');
154+
const newTemplate = res.json.data.flows.find((value) => value.name === 'sync-users');
155+
156+
expect(oldFlow).toMatchObject({
157+
name: 'users',
158+
returns: ['User'],
159+
type: 'sync'
160+
});
161+
expect(newTemplate).not.toBeUndefined();
162+
expect(newTemplate).toMatchObject({
163+
enabled: false,
164+
is_public: true,
165+
name: 'sync-users',
166+
pre_built: true,
167+
returns: ['User'],
168+
type: 'sync'
169+
});
170+
});
127171
});

packages/server/lib/controllers/v1/integrations/providerConfigKey/flows/getFlows.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,10 @@ function containsSameEndpoint(flowA: NangoSyncConfig, flowB: NangoSyncConfig) {
7070
}
7171

7272
function hasSimilarFlow(templateFlow: NangoSyncConfig, list: NangoSyncConfig[]): NangoSyncConfig | false {
73-
const modelsName = new Set<string>(templateFlow.returns.map((model) => model));
74-
7573
for (const flow of list) {
7674
if (flow.type === templateFlow.type && flow.name === templateFlow.name) {
7775
return flow;
7876
}
79-
if (flow.type === 'sync' && templateFlow.type === 'sync' && flow.returns.find((model) => modelsName.has(model))) {
80-
return flow;
81-
}
8277
if (containsSameEndpoint(flow, templateFlow)) {
8378
return flow;
8479
}

0 commit comments

Comments
 (0)