From 0d956c225399e0e4af9ad16785fa426efdaeeda2 Mon Sep 17 00:00:00 2001 From: Alex Rock Ancelet Date: Wed, 18 Dec 2019 08:45:00 +0100 Subject: [PATCH] Make sure graph vertex value is converted to string --- src/data-structures/graph/GraphVertex.js | 2 +- .../graph/__test__/GraphVertex.test.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/data-structures/graph/GraphVertex.js b/src/data-structures/graph/GraphVertex.js index f11dd2c1..f3514d44 100644 --- a/src/data-structures/graph/GraphVertex.js +++ b/src/data-structures/graph/GraphVertex.js @@ -133,6 +133,6 @@ export default class GraphVertex { * @returns {string} */ toString(callback) { - return callback ? callback(this.value) : `${this.value}`; + return callback ? callback(this.value).toString() : this.value.toString(); } } diff --git a/src/data-structures/graph/__test__/GraphVertex.test.js b/src/data-structures/graph/__test__/GraphVertex.test.js index 4810a1c2..3fc2110d 100644 --- a/src/data-structures/graph/__test__/GraphVertex.test.js +++ b/src/data-structures/graph/__test__/GraphVertex.test.js @@ -185,4 +185,20 @@ describe('GraphVertex', () => { expect(vertexA.getEdges().length).toEqual(3); }); + + it('should execute callback when passed to toString', () => { + const vertex = new GraphVertex('A'); + + expect(vertex.toString(() => 'B')).toEqual('B'); + }); + + it('should execute toString on value when calling toString on vertex', () => { + const value = { + toString() { return 'A'; }, + }; + + const vertex = new GraphVertex(value); + + expect(vertex.toString()).toEqual('A'); + }); });