Skip to content

Commit 6e05442

Browse files
committed
update unit test
1 parent d82b32c commit 6e05442

File tree

1 file changed

+71
-7
lines changed

1 file changed

+71
-7
lines changed

webui/src/test/ingress-definition-test.js

Lines changed: 71 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,33 @@ describe('ingress-definition', function () {
2525
'targetServiceNameSpace' : 'domain1-ns', 'targetService' : 'domain1-cluster-cluster-1', 'targetPort' : '8109',
2626
'path': '/myapp', 'ssl' : false };
2727

28-
const genericIngress = {'name': 'Route1', 'virtualHost' : 'domain1.org',
29-
'targetServiceNameSpace' : 'domain1-ns', 'targetService' : 'domain1-cluster-cluster-1', 'targetPort' : '8109',
30-
'path': '/myapp', 'ssl' : true, 'tlsSecretName': 'mytls' };
28+
const traefikIngress = {
29+
'name': 'console',
30+
'targetServiceNameSpace': 'sample-domain1-ns',
31+
'targetService': 'sample-domain1-admin-server',
32+
'targetPort': 7002,
33+
'path': '/console',
34+
'annotations': {
35+
'kubernetes.io/ingress.class': 'traefik',
36+
'traefik.ingress.kubernetes.io/router.tls': 'true'
37+
},
38+
'tlsOption': 'ssl_terminate_ingress',
39+
'isConsoleService': true
40+
};
41+
42+
43+
const nginxIngress = {
44+
'name': 'console',
45+
'targetServiceNameSpace': 'sample-domain1-ns',
46+
'targetService': 'sample-domain1-admin-server',
47+
'targetPort': 7001,
48+
'path': '/console',
49+
'annotations': {
50+
'kubernetes.io/ingress.class': 'nginx'
51+
},
52+
'tlsOption': 'ssl_terminate_ingress',
53+
'isConsoleService': true
54+
};
3155

3256
before(function (done) {
3357
testHelper.install();
@@ -56,15 +80,55 @@ describe('ingress-definition', function () {
5680
});
5781

5882
it('generate nginx ingress', function () {
59-
const yaml = ingressResource.createNginxRoutesAsYaml(genericIngress);
83+
const yaml = ingressResource.createNginxRoutesAsYaml(nginxIngress);
6084
const json = jsyaml.load(yaml);
85+
const expectedAnnotation = 'more_clear_input_headers "WL-Proxy-Client-IP" "WL-Proxy-SSL";\n' +
86+
'more_set_input_headers "X-Forwarded-Proto: https";\n' +
87+
'more_set_input_headers "WL-Proxy-SSL: true";\n';
88+
89+
expect(json.metadata.annotations['nginx.ingress.kubernetes.io/configuration-snippet']).to.equal(expectedAnnotation);
6190
expect(json['apiVersion']).to.equal('networking.k8s.io/v1');
6291
});
6392

6493
it('generate traefik ingress', function () {
65-
const yaml = ingressResource.createTraefikRoutesAsYaml(genericIngress);
66-
const json = jsyaml.load(yaml);
67-
expect(json['apiVersion']).to.equal('traefik.containo.us/v1alpha1');
94+
const yaml = ingressResource.createTraefikRoutesAsYaml(traefikIngress);
95+
const expectedYaml = 'apiVersion: traefik.containo.us/v1alpha1\n' +
96+
'kind: Middleware\n' +
97+
'metadata:\n' +
98+
' name: console-middleware\n' +
99+
' namespace: sample-domain1-ns\n' +
100+
' labels:\n' +
101+
' createdByWtkUIVersion: 1.1.0\n' +
102+
'spec:\n' +
103+
' headers:\n' +
104+
' sslRedirect: true\n' +
105+
' customRequestHeaders:\n' +
106+
' X-Custom-Request-Header: \'\'\n' +
107+
' X-Forwarded-For: \'\'\n' +
108+
' WL-Proxy-Client-IP: \'\'\n' +
109+
' WL-Proxy-SSL: \'true\'\n' +
110+
'\n' +
111+
'---\n' +
112+
'apiVersion: traefik.containo.us/v1alpha1\n' +
113+
'kind: IngressRoute\n' +
114+
'metadata:\n' +
115+
' name: console\n' +
116+
' namespace: sample-domain1-ns\n' +
117+
' annotations:\n' +
118+
' kubernetes.io/ingress.class: traefik\n' +
119+
' traefik.ingress.kubernetes.io/router.tls: \'true\'\n' +
120+
'spec:\n' +
121+
' routes:\n' +
122+
' - kind: Rule\n' +
123+
' match: PathPrefix(`/console`)\n' +
124+
' services:\n' +
125+
' - kind: Service\n' +
126+
' name: sample-domain1-admin-server\n' +
127+
' port: 7002\n' +
128+
' middlewares:\n' +
129+
' - name: console-middleware\n';
130+
131+
expect(yaml).to.equal(expectedYaml);
68132
});
69133
});
70134
});

0 commit comments

Comments
 (0)