Skip to content

Commit e7e97d1

Browse files
committed
tests: updateDnsRecords
1 parent 36f0a8f commit e7e97d1

3 files changed

Lines changed: 106 additions & 0 deletions

File tree

test/api.spec.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import {
33
ApiResponse,
44
InfoDNSRecordsResponse,
55
InfoDNSZoneResponse,
6+
UpdateDNSRecordsResponse,
67
} from '../src/@types/Responses';
78
import NetcupRestApi from '../src/api';
89
import {
910
createEmptyApiResponse,
1011
createEmptyInfoDnsRecordsResponse,
1112
createEmptyInfoDnsZoneResponse,
1213
createEmptyLoginResponse,
14+
createEmptyUpdateDnsRecordsResponse,
1315
} from './testUtils';
1416

1517
describe('Api functions', () => {
@@ -89,6 +91,52 @@ describe('Api functions', () => {
8991
});
9092
expect(res).toEqual(givenResponse);
9193
});
94+
95+
it('updateDnsRecords', async () => {
96+
const api = new NetcupRestApi();
97+
const emptyResponse = createEmptyUpdateDnsRecordsResponse();
98+
const givenResponse: UpdateDNSRecordsResponse = {
99+
...emptyResponse,
100+
statuscode: 2000,
101+
responsedata: {
102+
...emptyResponse.responsedata,
103+
dnsrecords: [
104+
{
105+
id: '1',
106+
hostname: 'www',
107+
type: 'A',
108+
state: 'yes',
109+
priority: '',
110+
deleterecord: false,
111+
destination: '@',
112+
},
113+
],
114+
},
115+
};
116+
jest
117+
.spyOn(api.axios, 'post')
118+
.mockReturnValue(Promise.resolve({ data: givenResponse }));
119+
const res = await api.updateDnsRecords({
120+
domainname: 'test.com',
121+
customernumber: '',
122+
apikey: '',
123+
apisessionid: '',
124+
dnsrecordset: {
125+
dnsrecords: [
126+
{
127+
id: '1',
128+
hostname: 'www',
129+
type: 'A',
130+
state: 'yes',
131+
priority: '',
132+
deleterecord: false,
133+
destination: '@',
134+
},
135+
],
136+
},
137+
});
138+
expect(res).toEqual(givenResponse);
139+
});
92140
});
93141

94142
describe('format tests', () => {

test/index.spec.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import { InitParams } from '../src/@types/InitParams';
33
import {
44
InfoDNSRecordsResponse,
55
InfoDNSZoneResponse,
6+
UpdateDNSRecordsResponse,
67
} from '../src/@types/Responses';
78
import { INVALID_FORMAT_ERROR, NOT_INITIALIZED_ERROR } from '../src/constants';
89
import {
910
createEmptyInfoDnsRecordsResponse,
1011
createEmptyInfoDnsZoneResponse,
12+
createEmptyUpdateDnsRecordsResponse,
1113
givenSessionId,
1214
mockLoginResponse,
1315
} from './testUtils';
@@ -116,4 +118,50 @@ describe('exported functions', () => {
116118
).rejects.toThrow(NOT_INITIALIZED_ERROR);
117119
});
118120
});
121+
122+
describe('updateDnsRecords tests', () => {
123+
it('should correctly update dns records', async () => {
124+
const netcupApi = new NetcupApi();
125+
mockLoginResponse(netcupApi.restApi);
126+
await netcupApi.init(givenAuthData);
127+
const givenDnsRecordsUpdate: UpdateDNSRecordsResponse = {
128+
...createEmptyUpdateDnsRecordsResponse(),
129+
responsedata: {
130+
dnsrecords: [
131+
{
132+
id: '',
133+
deleterecord: false,
134+
hostname: 'test',
135+
priority: '',
136+
state: 'yes',
137+
type: 'A',
138+
destination: '@',
139+
},
140+
],
141+
},
142+
};
143+
144+
jest
145+
.spyOn(netcupApi.restApi, 'updateDnsRecords')
146+
.mockReturnValue(Promise.resolve(givenDnsRecordsUpdate));
147+
const updateDnsRecordsResult = await netcupApi.updateDnsRecords({
148+
dnsrecordset: {
149+
dnsrecords: [],
150+
},
151+
domainname: 'test.domain.com',
152+
});
153+
expect(updateDnsRecordsResult).toEqual(givenDnsRecordsUpdate);
154+
});
155+
156+
it('should throw error on update dns records without auth', async () => {
157+
await expect(() =>
158+
new NetcupApi().updateDnsRecords({
159+
dnsrecordset: {
160+
dnsrecords: [],
161+
},
162+
domainname: '',
163+
}),
164+
).rejects.toThrow(NOT_INITIALIZED_ERROR);
165+
});
166+
});
119167
});

test/testUtils.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
InfoDNSRecordsResponse,
66
InfoDNSZoneResponse,
77
LoginResponse,
8+
UpdateDNSRecordsResponse,
89
} from '../src/@types/Responses';
910
import NetcupRestApi from '../src/api';
1011

@@ -67,3 +68,12 @@ export function mockLoginResponse(api: NetcupRestApi) {
6768
};
6869
jest.spyOn(api, 'login').mockReturnValue(Promise.resolve(givenLoginResponse));
6970
}
71+
72+
export const createEmptyUpdateDnsRecordsResponse =
73+
(): UpdateDNSRecordsResponse => ({
74+
...createEmptyApiResponse<UpdateDNSRecordsResponse>(),
75+
action: Actions.updateDnsRecords,
76+
responsedata: {
77+
dnsrecords: [],
78+
},
79+
});

0 commit comments

Comments
 (0)