Skip to content

Commit 7468eb1

Browse files
committed
vizzutest: simplify url handling, use vizzu.js default
1 parent 2d5dd89 commit 7468eb1

File tree

2 files changed

+50
-27
lines changed

2 files changed

+50
-27
lines changed

ci/docker/vizzu-test-cloudbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key
1313
ADD . /workspace/
1414
WORKDIR /workspace/test/integration
1515
RUN npm install
16-
RUN node vizzutest.js -r DISABLED
16+
RUN node vizzutest.js -r DISABLED -u /example/lib/vizzu.min.js

test/integration/vizzutest.js

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const { resolve } = require('path');
22

3-
const remoteLatestBucket = 'vizzu-lib-main-sha.storage.googleapis.com';
4-
const remoteStableBucket = 'vizzu-lib-main.storage.googleapis.com';
3+
const remoteLatestBucket = 'https://vizzu-lib-main-sha.storage.googleapis.com';
4+
const remoteStableBucket = 'https://vizzu-lib-main.storage.googleapis.com';
5+
const remoteCdn = 'https://cdn.jsdelivr.net/npm/vizzu';
56
const defaultAnimStep = '20%';
67
const defaultTestCaseTimeout = 60000;
78
const padLength = 7;
@@ -114,40 +115,62 @@ try {
114115

115116
async #setUrl(url) {
116117
try {
117-
let vizzuMinJs = 'vizzu.min.js';
118118
let vizzuJs = 'vizzu.js';
119+
let vizzuMinJs = 'vizzu.min.js';
120+
let vizzuTypeForced;
119121

120122
if (url.endsWith(vizzuMinJs)) {
121123
url = url.substring(0, url.length - vizzuMinJs.length);
122-
}
123-
if (url.endsWith(vizzuJs)) {
124+
vizzuTypeForced = vizzuMinJs;
125+
} else if (url.endsWith(vizzuJs)) {
124126
url = url.substring(0, url.length - vizzuJs.length);
127+
vizzuTypeForced = vizzuJs
125128
}
129+
126130
if (url.endsWith('/')) {
127131
url = url.substring(0, url.length - 1);
128132
}
129133

130-
if (url.includes(remoteStableBucket)) {
131-
url = 'https://' + remoteStableBucket + '/lib';
132-
} else if (url.includes(remoteLatestBucket)) {
133-
url = 'https://' + remoteLatestBucket + '/lib-' + url.split('/lib-')[1].substring(0,7);
134+
if (url.toLowerCase() === 'head') {
135+
url = remoteStableBucket + '/lib';
136+
} else if (/^[A-Za-z0-9]+$/.test(url) && url.length === 7) {
137+
url = remoteLatestBucket + '/lib-' + url;
138+
} else if (/^(\d+\.)?(\d+\.)?(\*|\d+)$/.test(url)) {
139+
url = remoteCdn + '@' + url + '/dist';
140+
vizzuTypeForced = vizzuMinJs;
134141
}
135142

136143
if (url.startsWith('https://')) {
137-
if (await this.#isUrlExist(url + '/' + vizzuMinJs)) {
138-
url = url + '/' + vizzuMinJs;
139-
} else if (await this.#isUrlExist(url + '/' + vizzuJs)) {
140-
url = url + '/' + vizzuJs;
144+
if (vizzuTypeForced) {
145+
if (await this.#isUrlExist(url + '/' + vizzuTypeForced)) {
146+
url = url + '/' + vizzuTypeForced;
147+
} else {
148+
throw new Error('ENOENT: ' + url + '/' + vizzuTypeForced);
149+
}
141150
} else {
142-
throw new Error('ENOENT: ' + url + '/' + vizzuMinJs + '|' + url + '/' + vizzuJs);
151+
if (await this.#isUrlExist(url + '/' + vizzuJs)) {
152+
url = url + '/' + vizzuJs;
153+
} else if (await this.#isUrlExist(url + '/' + vizzuMinJs)) {
154+
url = url + '/' + vizzuMinJs;
155+
} else {
156+
throw new Error('ENOENT: ' + url + '/' + vizzuJs + '|' + url + '/' + vizzuMinJs);
157+
}
143158
}
144159
} else {
145-
if (fs.existsSync(this.#workspacePath + url + '/' + vizzuMinJs)) {
146-
url = url + '/' + vizzuMinJs;
147-
} else if (fs.existsSync(this.#workspacePath + url + '/' + vizzuJs)) {
148-
url = url + '/' + vizzuJs;
160+
if (vizzuTypeForced) {
161+
if (fs.existsSync(this.#workspacePath + url + '/' + vizzuTypeForced)) {
162+
url = url + '/' + vizzuTypeForced;
163+
} else {
164+
throw new Error('ENOENT: ' + url + '/' + vizzuTypeForced);
165+
}
149166
} else {
150-
throw new Error('ENOENT: ' + path.resolve(this.#workspacePath + url + '/' + vizzuMinJs) + '|' + path.resolve(this.#workspacePath + url + '/' + vizzuJs));
167+
if (fs.existsSync(this.#workspacePath + url + '/' + vizzuJs)) {
168+
url = url + '/' + vizzuJs;
169+
} else if (fs.existsSync(this.#workspacePath + url + '/' + vizzuMinJs)) {
170+
url = url + '/' + vizzuMinJs;
171+
} else {
172+
throw new Error('ENOENT: ' + path.resolve(this.#workspacePath + url + '/' + vizzuJs) + '|' + path.resolve(this.#workspacePath + url + '/' + vizzuMinJs));
173+
}
151174
}
152175
}
153176
this.#url = url;
@@ -284,15 +307,15 @@ try {
284307
if (this.#refurl === undefined) {
285308
let vizzuMinJs = 'vizzu.min.js';
286309
let vizzuJs = 'vizzu.js';
287-
let shaUrl = await fetch('https://' + remoteStableBucket + '/lib/sha.txt');
310+
let shaUrl = await fetch(remoteStableBucket + '/lib/sha.txt');
288311
sha = await shaUrl.text();
289312
sha = sha.trim();
290-
if (await this.#isUrlExist('https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs)) {
291-
this.#refurl = 'https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs;
292-
} else if (await this.#isUrlExist('https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs)) {
293-
this.#refurl = 'https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs;
313+
if (await this.#isUrlExist(remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs)) {
314+
this.#refurl = remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs;
315+
} else if (await this.#isUrlExist(remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs)) {
316+
this.#refurl = remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs;
294317
} else {
295-
throw new Error('ENOENT: ' + 'https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs + '|' + 'https://' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs);
318+
throw new Error('ENOENT: ' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuMinJs + '|' + remoteLatestBucket + '/lib-' + sha + '/' + vizzuJs);
296319
}
297320
}
298321
let testCaseRefData = await this.#runTestCaseClient(testCase, this.#refurl);
@@ -474,7 +497,7 @@ try {
474497
.alias('u', 'vizzuUrl')
475498
.describe('u', 'Change vizzu.js url')
476499
.nargs('u', 1)
477-
.default('u', '/example/lib')
500+
.default('u', '/example/lib/vizzu.js')
478501
.argv;
479502

480503
let test = new TestSuite(__dirname + '/test_cases');

0 commit comments

Comments
 (0)