Skip to content

Commit

Permalink
add value() and string() to adapter, update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
--global committed Aug 23, 2018
1 parent 009342e commit f814ca8
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 20 deletions.
4 changes: 2 additions & 2 deletions dist/tree-walker.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/tree-walker.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/tree-walker.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/tree-walker.min.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions example/onode-adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
getChildAt: (item, index = 0) => adapter.toNode(item).children[index],
getNodeParent: (item) => adapter.toNode(item).parent,
getNodeRoot: (item) => adapter.toNode(item).root,
valueOf: (item) => item.valueOf(),
toString: (item) => item.toString(),
};

target.ONodeAdapter = adapter;
Expand Down
2 changes: 1 addition & 1 deletion example/tree-walker.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion example/tree-walker.min.js.map

Large diffs are not rendered by default.

51 changes: 40 additions & 11 deletions source/augmentations/__tests__/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,50 @@ describe('Core augmentations', () => {
let source;
let root;

beforeEach(() => {
source = getSourceTree();
root = create(source, ONodeAdapter);
});
describe('When adapter has methods', () => {
beforeEach(() => {
source = getSourceTree();
root = create(source, {
...ONodeAdapter,
string: () => 'ONode String',
value: () => 'ONode Value',
});
});

describe('toString()', () => {
it('should return unwrapped source node', () => {
expect(root.first.toString()).toBe('ONode String');
});
});

describe('toString()', () => {
it('should return unwrapped source node', () => {
expect(root.first.toString()).toBe('[ONode name="first" {"level":1}]');
describe('valueOf()', () => {
it('should return unwrapped source node', () => {
expect(root.first.valueOf()).toBe('ONode Value');
});
});
});

describe('valueOf()', () => {
it('should return unwrapped source node', () => {
expect(root.first.valueOf()[0]).toBeInstanceOf(ONode);
expect(root.first.valueOf()[0].name).toBe('first');
describe('When adapter does not have methods', () => {
beforeEach(() => {
source = getSourceTree();
root = create(source, {
...ONodeAdapter,
string: undefined,
value: undefined,
});
});

describe('toString()', () => {
it('should return unwrapped source node', () => {
expect(root.first.toString()).toBe('[ONode name="first" {"level":1}]');
});
});

describe('valueOf()', () => {
it('should return unwrapped source node', () => {
expect(root.first.valueOf()[0]).toBeInstanceOf(ONode);
expect(root.first.valueOf()[0].name).toBe('first');
});
});
});
});
5 changes: 3 additions & 2 deletions source/augmentations/core.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const toString = (node) => node.toString();
const valueOf = (node) => node;
const toString = (node, adapter) =>
adapter.string ? adapter.string(node) : node.toString();
const valueOf = (node, adapter) => (adapter.value ? adapter.value(node) : node);

export default {
toString,
Expand Down
12 changes: 12 additions & 0 deletions stub-adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,18 @@ const adapter = {
* @return {Node}
*/
getNodeRoot: fn,
/**
* Get root node.
* @param {Node|Node[]} node
* @return {Object}
*/
value: (item) => item,
/**
* Get root node.
* @param {Node|Node[]} node
* @return {String}
*/
string: (item) => item.toString(),
};

export default adapter;

0 comments on commit f814ca8

Please sign in to comment.