Skip to content

Commit 24e2297

Browse files
PMM-14257 add instance id field for add service step 2 (#840)
* PMM-14257 add instance id field for add service step 2 * PMM-14257: add instance id field only for RDS connection and modified request payload * PMM-14257 Format code * PMM-14257 Add unit tests * PMM-14257 Fix unit test * PMM-14257 Correctly fix unit test --------- Co-authored-by: Matej Kubinec <[email protected]>
1 parent f88125a commit 24e2297

File tree

7 files changed

+102
-3
lines changed

7 files changed

+102
-3
lines changed

public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.service.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ describe('AddRemoteInstanceService:: ', () => {
9696
qan_postgresql_pgstatements_agent: true,
9797
metrics_mode: 1,
9898
node_id: 'node1',
99+
node_name: 'localhost',
99100
};
100101
expect(toPayload(data)).toStrictEqual(payload);
101102
});

public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.service.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,12 @@ export const toPayload = (values: any, discoverName?: string, type?: InstanceAva
143143
data.node_id = data.node.value;
144144
} else if (!values.isAzure && data.add_node === undefined) {
145145
data.add_node = {
146-
node_name: data.service_name,
147146
node_type: 'NODE_TYPE_REMOTE_NODE',
148147
};
149148
}
150149

150+
data.node_name = data.service_name;
151+
151152
if (values.isRDS && discoverName) {
152153
data.engine = discoverName;
153154
}

public/app/percona/add-instance/components/AddRemoteInstance/FormParts/FormParts.messages.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const Messages = {
2929
port: 'Port',
3030
username: 'Username',
3131
password: 'Password',
32+
instanceID: 'Instance ID',
3233
},
3334
postgresqlDetails: {
3435
database: 'Database',
@@ -94,6 +95,7 @@ export const Messages = {
9495
serviceName: 'Service name (default: Hostname)',
9596
username: 'Username',
9697
password: 'Password',
98+
instanceID: 'Instance ID',
9799
},
98100
postgresqlDetails: {
99101
database: 'Database (default: postgres)',
@@ -136,6 +138,7 @@ export const Messages = {
136138
port: 'Port your service is listening on',
137139
username: 'Your database user name',
138140
password: 'Your database password',
141+
instanceID: 'Instance ID to use',
139142
},
140143
postgresqlDetails: {
141144
database: 'Database name',

public/app/percona/add-instance/components/AddRemoteInstance/FormParts/MySQLConnectionDetails/MySQLConnectionDetails.test.tsx

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,42 @@ describe('MySQL connection details:: ', () => {
2121

2222
await waitFor(() => expect(screen.getByTestId('maxQueryLength-text-input')).toHaveValue('1000'));
2323
});
24+
25+
it('should show instance id field for RDS', async () => {
26+
render(
27+
<Provider store={configureStore()}>
28+
<Form
29+
onSubmit={jest.fn()}
30+
render={() => (
31+
<MySQLConnectionDetails
32+
remoteInstanceCredentials={{
33+
isRDS: true,
34+
}}
35+
/>
36+
)}
37+
/>
38+
</Provider>
39+
);
40+
41+
await waitFor(() => expect(screen.queryByTestId('instance_id-text-input')).toBeDefined());
42+
});
43+
44+
it("shouldn't show instance id field for non RDS", async () => {
45+
render(
46+
<Provider store={configureStore()}>
47+
<Form
48+
onSubmit={jest.fn()}
49+
render={() => (
50+
<MySQLConnectionDetails
51+
remoteInstanceCredentials={{
52+
isRDS: false,
53+
}}
54+
/>
55+
)}
56+
/>
57+
</Provider>
58+
);
59+
60+
await waitFor(() => expect(screen.queryByTestId('instance_id-text-input')).toBeNull());
61+
});
2462
});

public/app/percona/add-instance/components/AddRemoteInstance/FormParts/MySQLConnectionDetails/MySQLConnectionDetails.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,16 @@ export const MySQLConnectionDetails: FC<MainDetailsFormPartProps> = ({ form, rem
3131
tooltipText={Messages.form.tooltips.mainDetails.serviceName}
3232
placeholder={Messages.form.placeholders.mainDetails.serviceName}
3333
/>
34-
<div />
34+
{remoteInstanceCredentials.isRDS ? (
35+
<TextInputField
36+
name="instance_id"
37+
placeholder={Messages.form.placeholders.mainDetails.instanceID}
38+
label={Messages.form.labels.mainDetails.instanceID}
39+
tooltipText={Messages.form.tooltips.mainDetails.instanceID}
40+
/>
41+
) : (
42+
<div />
43+
)}
3544
</div>
3645
<NodesAgents form={form} />
3746
<div className={styles.group}>

public/app/percona/add-instance/components/AddRemoteInstance/FormParts/PostgreSQLConnectionDetails/PostgreSQLConnectionDetails.test.tsx

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,42 @@ describe('PostgreSQL connection details:: ', () => {
3434

3535
await waitFor(() => expect(screen.getByTestId('maxQueryLength-text-input')).toHaveValue('1000'));
3636
});
37+
38+
it('should show instance id field for RDS', async () => {
39+
render(
40+
<Provider store={configureStore()}>
41+
<Form
42+
onSubmit={jest.fn()}
43+
render={() => (
44+
<PostgreSQLConnectionDetails
45+
remoteInstanceCredentials={{
46+
isRDS: true,
47+
}}
48+
/>
49+
)}
50+
/>
51+
</Provider>
52+
);
53+
54+
await waitFor(() => expect(screen.queryByTestId('instance_id-text-input')).toBeDefined());
55+
});
56+
57+
it("shouldn't show instance id field for non RDS", async () => {
58+
render(
59+
<Provider store={configureStore()}>
60+
<Form
61+
onSubmit={jest.fn()}
62+
render={() => (
63+
<PostgreSQLConnectionDetails
64+
remoteInstanceCredentials={{
65+
isRDS: false,
66+
}}
67+
/>
68+
)}
69+
/>
70+
</Provider>
71+
);
72+
73+
await waitFor(() => expect(screen.queryByTestId('instance_id-text-input')).toBeNull());
74+
});
3775
});

public/app/percona/add-instance/components/AddRemoteInstance/FormParts/PostgreSQLConnectionDetails/PostgreSQLConnectionDetails.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,16 @@ export const PostgreSQLConnectionDetails: FC<MainDetailsFormPartProps> = ({ form
3030
label={Messages.form.labels.mainDetails.serviceName}
3131
tooltipText={Messages.form.tooltips.mainDetails.serviceName}
3232
/>
33-
<div />
33+
{remoteInstanceCredentials.isRDS ? (
34+
<TextInputField
35+
name="instance_id"
36+
placeholder={Messages.form.placeholders.mainDetails.instanceID}
37+
label={Messages.form.labels.mainDetails.instanceID}
38+
tooltipText={Messages.form.tooltips.mainDetails.instanceID}
39+
/>
40+
) : (
41+
<div />
42+
)}
3443
</div>
3544
<NodesAgents form={form} />
3645
<div className={styles.group}>

0 commit comments

Comments
 (0)