diff --git a/package.json b/package.json
index 60283de72373af72bb881641642182f6ceab9267..34edaf8c9891d08394ecca621af2234eeac5239e 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
 		"test:dev:runTests": "ava src/**.test.mjs",
 		"test:dev:duplication": "jscpd ./ -s",
 		"xtest:dev:complexity": "codehawk ./",
+		"test-e2e": "ava src/**.test-e2e.mjs",
 		"test:production": "run-s test:production:**",
 		"xtest:production:qualityCheck": "xo",
 		"test:production:duplication": "jscpd ./",
@@ -29,7 +30,8 @@
 		"test:production:complexity:badgesAndThreshold": "node CI/plato-badges.js",
 		"test:production:srcCoverage": "cd generated/cov-env/ && c8 ava",
 		"test:production:testMinified": "cd generated/minified/ && ava",
-		"test:production:clean": "rm -rf generated/minified/*.test.mjs",
+		"test:production:test-e2e": "cd generated/minified/ && ava **.test-e2e.mjs",
+		"test:production:clean": "rm -rf generated/minified/*.test*.mjs",
 		"test:production:minified2npm": "cp -rf generated/minified/* generated/npm/",
 		"watch": "chokidar src/* -c \"npm run test:dev:runTests\"",
 		"watch2null": "chokidar src/* -c \"npm run test:dev:runTests 2>/dev/null\""
diff --git a/src/data-pod-client.mjs b/src/data-pod-client.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/data-pod-client.test-e2e.mjs b/src/data-pod-client.test-e2e.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..568ab590fb4a3a504f29f66b351cdd42237a9b6a
--- /dev/null
+++ b/src/data-pod-client.test-e2e.mjs
@@ -0,0 +1,18 @@
+import test from 'ava';
+import * as app from './data-pod-client.mjs';
+
+test('data-pod-client real server request', async t => {
+	const hosts = ['https://g1.data.e-is.pro/'];
+	const query = 'user/profile/2sZF6j2PkxBDNAqUde7Dgo5x3crkerZpQ4rBqqJGn8QT?&_source=title';
+	const expectedResult = JSON.parse(`{
+		"_index":"user","_type":"profile","_id":"2sZF6j2PkxBDNAqUde7Dgo5x3crkerZpQ4rBqqJGn8QT","_version":11,
+		"found":true,
+		"_source":{"title":"[1000i100] Millicent BILLETTE"}
+	}`);
+
+	const client = new app.DataPodClient(hosts);
+	const result = await client.query(query);
+
+	t.is(result._source.title, expectedResult._source.title);
+});
+
diff --git a/src/data-pod-client.test.mjs b/src/data-pod-client.test.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/gva-client.mjs b/src/gva-client.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/gva-client.test-e2e.mjs b/src/gva-client.test-e2e.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/gva-client.test.js b/src/gva-client.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/multi-node-layer.mjs b/src/multi-node-layer.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/multi-node-layer.test.mjs b/src/multi-node-layer.test.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391