Skip to content

Commit b7d3d36

Browse files
committed
f
1 parent c9ec2fe commit b7d3d36

File tree

3 files changed

+30
-44
lines changed

3 files changed

+30
-44
lines changed

libs/backend-apisix/e2e/resources/service-upstream.e2e-spec.ts

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Differ } from '@api7/adc-differ';
12
import * as ADCSDK from '@api7/adc-sdk';
23

34
import { BackendAPISIX } from '../../src';
@@ -39,9 +40,7 @@ describe('Service-Upstreams E2E', () => {
3940
} satisfies ADCSDK.Service;
4041

4142
it('Create service with inline upstream', async () =>
42-
syncEvents(backend, [
43-
createEvent(ADCSDK.ResourceType.SERVICE, serviceName, service),
44-
]));
43+
syncEvents(backend, Differ.diff({ services: [service] }, {})));
4544

4645
it('Dump (inline upstream should exist)', async () => {
4746
const result = await dumpConfiguration(backend);
@@ -81,9 +80,10 @@ describe('Service-Upstreams E2E', () => {
8180
},
8281
} satisfies ADCSDK.Service;
8382
it('Update service inline upstream', async () =>
84-
syncEvents(backend, [
85-
updateEvent(ADCSDK.ResourceType.SERVICE, serviceName, updatedService),
86-
]));
83+
syncEvents(
84+
backend,
85+
Differ.diff({ services: [updatedService] }, await dumpConfiguration(backend)),
86+
));
8787

8888
it('Dump (inline upstream should be updated)', async () => {
8989
const result = await dumpConfiguration(backend);
@@ -101,15 +101,13 @@ describe('Service-Upstreams E2E', () => {
101101
hosts: ['test.example.com'],
102102
} satisfies ADCSDK.Service;
103103
it('Update service to remove inline upstream', async () =>
104-
syncEvents(backend, [
105-
updateEvent(
106-
ADCSDK.ResourceType.SERVICE,
107-
serviceName,
108-
serviceWithoutUpstream,
109-
undefined,
110-
updatedService, // oldValue with upstream
104+
syncEvents(
105+
backend,
106+
Differ.diff(
107+
{ services: [serviceWithoutUpstream] },
108+
await dumpConfiguration(backend),
111109
),
112-
]));
110+
));
113111

114112
it('Dump (inline upstream should be removed)', async () => {
115113
const result = await dumpConfiguration(backend);
@@ -134,13 +132,13 @@ describe('Service-Upstreams E2E', () => {
134132
},
135133
} satisfies ADCSDK.Service;
136134
it('Re-add inline upstream for deletion test', async () =>
137-
syncEvents(backend, [
138-
updateEvent(
139-
ADCSDK.ResourceType.SERVICE,
140-
serviceName,
141-
serviceForDeletion,
135+
syncEvents(
136+
backend,
137+
Differ.diff(
138+
{ services: [serviceForDeletion] },
139+
await dumpConfiguration(backend),
142140
),
143-
]));
141+
));
144142

145143
it('Dump (inline upstream should exist again)', async () => {
146144
const result = await dumpConfiguration(backend);
@@ -150,14 +148,7 @@ describe('Service-Upstreams E2E', () => {
150148
});
151149

152150
it('Delete service with inline upstream', async () =>
153-
syncEvents(backend, [
154-
deleteEvent(
155-
ADCSDK.ResourceType.SERVICE,
156-
serviceName,
157-
undefined,
158-
serviceForDeletion, // oldValue with upstream
159-
),
160-
]));
151+
syncEvents(backend, Differ.diff({}, await dumpConfiguration(backend))));
161152

162153
it('Dump again (service should not exist)', async () => {
163154
const result = await dumpConfiguration(backend);

libs/backend-apisix/e2e/support/utils.ts

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ export const createEvent = (
3434
resourceName,
3535
resourceId:
3636
resourceType === ADCSDK.ResourceType.CONSUMER ||
37-
resourceType === ADCSDK.ResourceType.GLOBAL_RULE ||
38-
resourceType === ADCSDK.ResourceType.PLUGIN_METADATA
37+
resourceType === ADCSDK.ResourceType.GLOBAL_RULE ||
38+
resourceType === ADCSDK.ResourceType.PLUGIN_METADATA
3939
? resourceName
4040
: resourceType === ADCSDK.ResourceType.SSL
4141
? ADCSDK.utils.generateId((resource as ADCSDK.SSL).snis.join(','))
4242
: ADCSDK.utils.generateId(
43-
parentName ? `${parentName}.${resourceName}` : resourceName,
44-
),
43+
parentName ? `${parentName}.${resourceName}` : resourceName,
44+
),
4545
newValue: resource,
4646
parentId: parentName
4747
? resourceType === ADCSDK.ResourceType.CONSUMER_CREDENTIAL
@@ -55,39 +55,33 @@ export const updateEvent = (
5555
resourceName: string,
5656
resource: object,
5757
parentName?: string,
58-
oldValue?: object,
5958
): ADCSDK.Event => {
6059
const event = createEvent(resourceType, resourceName, resource, parentName);
6160
event.type = ADCSDK.EventType.UPDATE;
62-
if (oldValue) {
63-
event.oldValue = oldValue;
64-
}
6561
return event;
6662
};
6763

6864
export const deleteEvent = (
6965
resourceType: ADCSDK.ResourceType,
7066
resourceName: string,
7167
parentName?: string,
72-
oldValue?: object,
7368
): ADCSDK.Event => ({
7469
type: ADCSDK.EventType.DELETE,
7570
resourceType,
7671
resourceName,
7772
resourceId:
7873
resourceType === ADCSDK.ResourceType.CONSUMER ||
79-
resourceType === ADCSDK.ResourceType.GLOBAL_RULE ||
80-
resourceType === ADCSDK.ResourceType.PLUGIN_METADATA
74+
resourceType === ADCSDK.ResourceType.GLOBAL_RULE ||
75+
resourceType === ADCSDK.ResourceType.PLUGIN_METADATA
8176
? resourceName
8277
: ADCSDK.utils.generateId(
83-
parentName ? `${parentName}.${resourceName}` : resourceName,
84-
),
78+
parentName ? `${parentName}.${resourceName}` : resourceName,
79+
),
8580
parentId: parentName
8681
? resourceType === ADCSDK.ResourceType.CONSUMER_CREDENTIAL
8782
? parentName
8883
: ADCSDK.utils.generateId(parentName)
8984
: undefined,
90-
oldValue,
9185
});
9286

9387
export const overrideEventResourceId = (

libs/backend-apisix/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
}
1010
},
1111
"devDependencies": {
12-
"@api7/adc-sdk": "workspace:*"
12+
"@api7/adc-sdk": "workspace:*",
13+
"@api7/adc-differ": "workspace:*"
1314
},
1415
"nx": {
1516
"name": "backend-apisix",
@@ -29,4 +30,4 @@
2930
}
3031
}
3132
}
32-
}
33+
}

0 commit comments

Comments
 (0)