Skip to content

Commit d5fa035

Browse files
committed
Fix tests
1 parent 2ebdd11 commit d5fa035

2 files changed

Lines changed: 64 additions & 62 deletions

File tree

packages/openops/src/lib/openops-tables/openops-tables-common-properties.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
import { Property, Validators } from '@openops/blocks-framework';
1+
import {
2+
Property,
3+
PropertyContext,
4+
Validators,
5+
} from '@openops/blocks-framework';
26
import { IAxiosRetryConfig } from 'axios-retry';
37
import { authenticateDefaultUserInOpenOpsTables } from './auth-user';
48
import {
59
DateOpenOpsField,
610
DurationOpenOpsField,
711
getFields,
12+
getTableFieldsFromContext,
813
NumberOpenOpsField,
914
OpenOpsField,
1015
RatingOpenOpsField,
@@ -35,12 +40,18 @@ export function openopsTablesDropdownProperty(): any {
3540

3641
export async function getTableFields(
3742
tableName: string,
43+
context: PropertyContext,
3844
axiosRetryConfig?: IAxiosRetryConfig,
3945
): Promise<OpenOpsField[]> {
40-
const { token } = await authenticateDefaultUserInOpenOpsTables();
46+
return await getTableFieldsFromContext(tableName, context, axiosRetryConfig);
47+
}
4148

49+
export async function getTableFieldsForMigration(
50+
tableName: string,
51+
axiosRetryConfig?: IAxiosRetryConfig,
52+
): Promise<OpenOpsField[]> {
53+
const { token } = await authenticateDefaultUserInOpenOpsTables();
4254
const tableId = await getTableIdByTableName(tableName as unknown as string);
43-
4455
return await getFields(tableId, token, false, axiosRetryConfig);
4556
}
4657

packages/openops/test/openops-tables/openops-tables-common-properties.test.ts

Lines changed: 50 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
1-
const getTableNamesMock = jest.fn();
2-
const getTableIdByTableNameMock = jest.fn();
1+
const getTableNames = jest.fn();
2+
const getTableFieldsFromContextMock = jest.fn();
33
jest.mock('../../src/lib/openops-tables/tables', () => {
44
return {
5-
getTableNames: getTableNamesMock,
6-
getTableIdByTableName: getTableIdByTableNameMock,
5+
getTableNames: getTableNames,
76
};
87
});
9-
const getFieldsMock = jest.fn();
108
jest.mock('../../src/lib/openops-tables/fields', () => {
11-
return { getFields: getFieldsMock };
12-
});
13-
const authenticateDefaultUserInOpenOpsTablesMock = jest.fn();
14-
jest.mock('../../src/lib/openops-tables/auth-user', () => {
159
return {
16-
authenticateDefaultUserInOpenOpsTables:
17-
authenticateDefaultUserInOpenOpsTablesMock,
10+
getTableFieldsFromContext: getTableFieldsFromContextMock,
1811
};
1912
});
2013

@@ -34,12 +27,15 @@ describe('table property', () => {
3427
});
3528

3629
test('should return dropdown with all tables', async () => {
37-
authenticateDefaultUserInOpenOpsTablesMock.mockResolvedValue({
38-
token: 'token',
39-
});
40-
getTableNamesMock.mockResolvedValue(['table1', 'table2']);
41-
42-
const result = await openopsTablesDropdownProperty().options();
30+
const mockContext = {
31+
server: { tablesDatabaseId: 1, tablesDatabaseToken: 'encrypted-token' },
32+
} as any;
33+
getTableNames.mockResolvedValue(['table1', 'table2']);
34+
35+
const result = await openopsTablesDropdownProperty().options(
36+
null,
37+
mockContext,
38+
);
4339

4440
expect(result).toMatchObject({
4541
disabled: false,
@@ -48,19 +44,25 @@ describe('table property', () => {
4844
{ label: 'table2', value: 'table2' },
4945
],
5046
});
51-
expect(getTableNamesMock).toHaveBeenCalledTimes(1);
47+
expect(getTableNames).toHaveBeenCalledTimes(1);
5248
});
5349

5450
test('should handle empty tables', async () => {
55-
getTableNamesMock.mockResolvedValue([]);
56-
57-
const result = await openopsTablesDropdownProperty().options();
51+
const mockContext = {
52+
server: { tablesDatabaseId: 1, tablesDatabaseToken: 'encrypted-token' },
53+
} as any;
54+
getTableNames.mockResolvedValue([]);
55+
56+
const result = await openopsTablesDropdownProperty().options(
57+
null,
58+
mockContext,
59+
);
5860

5961
expect(result).toMatchObject({
6062
disabled: false,
6163
options: [],
6264
});
63-
expect(getTableNamesMock).toHaveBeenCalledTimes(1);
65+
expect(getTableNames).toHaveBeenCalledTimes(1);
6466
});
6567
});
6668

@@ -70,10 +72,10 @@ describe('getTableFields', () => {
7072
});
7173

7274
test('should return the options', async () => {
73-
authenticateDefaultUserInOpenOpsTablesMock.mockResolvedValue({
74-
token: 'token',
75-
});
76-
getFieldsMock.mockResolvedValue([
75+
const mockContext = {
76+
server: { tablesDatabaseId: 1, tablesDatabaseToken: 'encrypted-token' },
77+
} as any;
78+
getTableFieldsFromContextMock.mockResolvedValue([
7779
{
7880
name: 'field1',
7981
id: 1,
@@ -92,9 +94,7 @@ describe('getTableFields', () => {
9294
},
9395
]);
9496

95-
getTableIdByTableNameMock.mockResolvedValue(1);
96-
97-
const result = await getTableFields('Opportunity');
97+
const result = await getTableFields('Opportunity', mockContext);
9898

9999
expect(result).toMatchObject([
100100
{
@@ -114,40 +114,35 @@ describe('getTableFields', () => {
114114
type: 'equal',
115115
},
116116
]);
117-
expect(authenticateDefaultUserInOpenOpsTablesMock).toHaveBeenCalledTimes(1);
118-
expect(getFieldsMock).toHaveBeenCalledTimes(1);
119-
expect(getFieldsMock).toHaveBeenCalledWith(1, 'token', false, undefined); // Adjust this line as needed.
120-
});
121-
122-
test('should handle authentication failure', async () => {
123-
authenticateDefaultUserInOpenOpsTablesMock.mockRejectedValueOnce(
124-
new Error('Authentication failed'),
125-
);
126-
getTableIdByTableNameMock.mockResolvedValue(1);
127-
128-
await expect(getTableFields('Opportunity')).rejects.toThrow(
129-
'Authentication failed',
117+
expect(getTableFieldsFromContextMock).toHaveBeenCalledTimes(1);
118+
expect(getTableFieldsFromContextMock).toHaveBeenCalledWith(
119+
'Opportunity',
120+
mockContext,
121+
undefined,
130122
);
131-
expect(authenticateDefaultUserInOpenOpsTablesMock).toHaveBeenCalledTimes(1);
132-
expect(getFieldsMock).not.toHaveBeenCalled();
133123
});
134124

135125
test('should handle empty fields', async () => {
136-
authenticateDefaultUserInOpenOpsTablesMock.mockResolvedValue({
137-
token: 'token',
138-
});
139-
getFieldsMock.mockResolvedValue([]);
140-
getTableIdByTableNameMock.mockResolvedValue(1);
126+
const mockContext = {
127+
server: { tablesDatabaseId: 1, tablesDatabaseToken: 'encrypted-token' },
128+
} as any;
129+
getTableFieldsFromContextMock.mockResolvedValue([]);
141130

142-
const result = await getTableFields('Opportunity');
131+
const result = await getTableFields('Opportunity', mockContext);
143132

144133
expect(result).toMatchObject([]);
145-
expect(authenticateDefaultUserInOpenOpsTablesMock).toHaveBeenCalledTimes(1);
146-
expect(getFieldsMock).toHaveBeenCalledTimes(1);
147-
expect(getFieldsMock).toHaveBeenCalledWith(1, 'token', false, undefined);
134+
expect(getTableFieldsFromContextMock).toHaveBeenCalledTimes(1);
135+
expect(getTableFieldsFromContextMock).toHaveBeenCalledWith(
136+
'Opportunity',
137+
mockContext,
138+
undefined,
139+
);
148140
});
149141

150142
test('should return our supported properties for the field', async () => {
143+
const mockContext = {
144+
server: { tablesDatabaseId: 1, tablesDatabaseToken: 'encrypted-token' },
145+
} as any;
151146
const numberField: NumberOpenOpsField = {
152147
name: 'field1',
153148
id: 1,
@@ -185,18 +180,14 @@ describe('getTableFields', () => {
185180
duration_format: 'format',
186181
};
187182

188-
authenticateDefaultUserInOpenOpsTablesMock.mockResolvedValue({
189-
token: 'token',
190-
});
191-
getFieldsMock.mockResolvedValue([
183+
getTableFieldsFromContextMock.mockResolvedValue([
192184
numberField,
193185
singleSelectField,
194186
multiSelectField,
195187
durationField,
196188
]);
197-
getTableIdByTableNameMock.mockResolvedValue(2);
198189

199-
const result = await getTableFields('Opportunity');
190+
const result = await getTableFields('Opportunity', mockContext);
200191

201192
expect(result).toEqual([
202193
numberField,

0 commit comments

Comments
 (0)