commit 442f1b26edabbd44bce11ff187fedaffa4236841
parent a824c31cc7192386e1f22b2ef8e96493aab7da51
Author: Sergey Orlov <wladimirych@gmail.com>
Date: Sat, 8 Aug 2020 20:31:46 +0200
Fix order of geodata lists loaded from nakarte urls. Fixes #501.
Diffstat:
5 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
@@ -26,6 +26,7 @@
"@babel/preset-env": "^7.11.0",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0",
+ "babel-plugin-rewire": "^1.2.0",
"chai": "^4.2.0",
"chalk": "^4.1.0",
"child_process": "^1.0.2",
diff --git a/src/lib/leaflet.control.track-list/lib/services/nakarte/index.js b/src/lib/leaflet.control.track-list/lib/services/nakarte/index.js
@@ -7,10 +7,11 @@ import loadTracksFromJson from './loadTracksFromJson';
import {fetch} from '~/lib/xhr-promise';
function flattenArray(ar) {
- return ar.reduce((cur, acc) => {
- acc.push(...cur);
- return acc;
- }, []);
+ const res = [];
+ for (const it of ar) {
+ res.push(...it);
+ }
+ return res;
}
function parsePointFromHashValues(values) {
diff --git a/test/test_track_load_from_nakarte_urls.js b/test/test_track_load_from_nakarte_urls.js
@@ -0,0 +1,39 @@
+import serviceNakarte from '~/lib/leaflet.control.track-list/lib/services/nakarte/index.js';
+
+suite('flattenArray');
+
+const flattenArray = serviceNakarte.__get__('flattenArray');
+[
+ [[], []],
+ [[[], []], []],
+ [[[1]], [1]],
+ [[[1, 2, 3]], [1, 2, 3]],
+ [
+ [[], [1, 2, 3]],
+ [1, 2, 3],
+ ],
+ [
+ [[1], [2]],
+ [1, 2],
+ ],
+ [
+ [
+ [1, 2, 3],
+ [4, 5, 6],
+ ],
+ [1, 2, 3, 4, 5, 6],
+ ],
+ [
+ [
+ [1, 2],
+ [3, 4],
+ [5, 6],
+ ],
+ [1, 2, 3, 4, 5, 6],
+ ],
+].forEach(function([inp, exp]) {
+ test(JSON.stringify(inp), function() {
+ const res = flattenArray(inp);
+ assert.deepEqual(res, exp);
+ });
+});
diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js
@@ -58,6 +58,7 @@ const babelConfig = {
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-optional-chaining',
'@babel/plugin-proposal-nullish-coalescing-operator',
+ ...(isTesting ? ['babel-plugin-rewire'] : []),
],
};
diff --git a/yarn.lock b/yarn.lock
@@ -1723,6 +1723,11 @@ babel-plugin-dynamic-import-node@^2.3.3:
dependencies:
object.assign "^4.1.0"
+babel-plugin-rewire@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-rewire/-/babel-plugin-rewire-1.2.0.tgz#822562d72ed2c84e47c0f95ee232c920853e9d89"
+ integrity sha512-JBZxczHw3tScS+djy6JPLMjblchGhLI89ep15H3SyjujIzlxo5nr6Yjo7AXotdeVczeBmWs0tF8PgJWDdgzAkQ==
+
backo2@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"