sol - bhsd-harry/wikiparser-node GitHub Wiki

This is an internal document. For visitors, you can now go back to the home page.

// toString (main)
var {sol} = require('../mixin/sol');
var parent = {
		type: 'root',
		is() {
			return true;
		},
	},
	SolToken, token, previous;
class S {
	str = 'test';
	toString() {
		return this.str;
	}
}
SolToken = sol()(S);
token = new SolToken();
assert.strictEqual(token.toString(), '\ntest');
token.parentNode = parent;
assert.strictEqual(token.toString(), 'test');
token.type = 'list';
parent.type = 'ext-inner';
assert.strictEqual(token.toString(), 'test');
token.type = '';
parent.name = 'poem';
assert.strictEqual(token.toString(), 'test');
previous = new S();
token.previousVisibleSibling = previous;
assert.strictEqual(token.toString(), '\ntest');
previous.str = '\n';
assert.strictEqual(token.toString(), 'test');
SolToken = sol(true)(S);
token = new SolToken();
SolToken = sol(true)(S);
token = new SolToken();
token.previousVisibleSibling = previous;
assert.strictEqual(token.toString(), 'test');
// getAttribute (main)
var {sol} = require('../mixin/sol');
var parent = {
		type: 'root',
		is() {
			return true;
		},
	},
	SolToken, token, previous;
class S {
	str = 'test';
	toString() {
		return this.str;
	}

	getAttribute(key) {
		return key === 'padding' && 0;
	}
}
SolToken = sol()(S);
token = new SolToken();
assert.strictEqual(token.getAttribute(), false);
assert.strictEqual(token.getAttribute('padding'), 1);
token.parentNode = parent;
assert.strictEqual(token.getAttribute('padding'), 0);
token.type = 'list';
parent.type = 'ext-inner';
assert.strictEqual(token.getAttribute('padding'), 0);
token.type = '';
parent.name = 'poem';
assert.strictEqual(token.getAttribute('padding'), 0);
previous = new S();
token.previousVisibleSibling = previous;
assert.strictEqual(token.getAttribute('padding'), 1);
previous.str = '\n';
assert.strictEqual(token.getAttribute('padding'), 0);
SolToken = sol(true)(S);
token = new SolToken();
SolToken = sol(true)(S);
token = new SolToken();
token.previousVisibleSibling = previous;
assert.strictEqual(token.getAttribute('padding'), 0);
// text (main)
var {sol} = require('../mixin/sol');
var parent = {
		type: 'root',
		is() {
			return true;
		},
	},
	SolToken, token, previous;
class S {
	str = 'test';
	toString() {
		return this.str;
	}

	text() {
		return 'test';
	}
}
SolToken = sol()(S);
token = new SolToken();
assert.strictEqual(token.toString(), '\ntest');
token.parentNode = parent;
assert.strictEqual(token.toString(), 'test');
token.type = 'list';
parent.type = 'ext-inner';
assert.strictEqual(token.toString(), 'test');
token.type = '';
parent.name = 'poem';
assert.strictEqual(token.toString(), 'test');
previous = new S();
token.previousVisibleSibling = previous;
assert.strictEqual(token.toString(), '\ntest');
previous.str = '\n';
assert.strictEqual(token.toString(), 'test');
SolToken = sol(true)(S);
token = new SolToken();
SolToken = sol(true)(S);
token = new SolToken();
token.previousVisibleSibling = previous;
assert.strictEqual(token.toString(), 'test');