mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Marko v3: Added tests for onBeforeGenerateCode and onAfterGenerateCode
This commit is contained in:
parent
29fdb6ba5c
commit
5ebfc173f4
6
test/fixtures/codegen/autotest/code-before-after-if/expected.js
vendored
Normal file
6
test/fixtures/codegen/autotest/code-before-after-if/expected.js
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
if (a > b) {
|
||||
before();
|
||||
out.w("<div class=\"greeting\">Hello World</div>");
|
||||
|
||||
after();
|
||||
}
|
||||
29
test/fixtures/codegen/autotest/code-before-after-if/index.js
vendored
Normal file
29
test/fixtures/codegen/autotest/code-before-after-if/index.js
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(builder) {
|
||||
var htmlElement = builder.htmlElement(
|
||||
'div',
|
||||
[
|
||||
{
|
||||
name: 'class',
|
||||
value: builder.literal('greeting')
|
||||
}
|
||||
],
|
||||
[
|
||||
builder.text(builder.literal('Hello World'))
|
||||
]);
|
||||
|
||||
htmlElement.onBeforeGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('before', []));
|
||||
});
|
||||
|
||||
htmlElement.onAfterGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('after', []));
|
||||
});
|
||||
|
||||
var ifStatement = builder.ifStatement('a > b', [
|
||||
htmlElement
|
||||
]);
|
||||
|
||||
return ifStatement;
|
||||
};
|
||||
9
test/fixtures/codegen/autotest/code-before-after-surrounded/expected.js
vendored
Normal file
9
test/fixtures/codegen/autotest/code-before-after-surrounded/expected.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
if (a > b) {
|
||||
var before;
|
||||
|
||||
before();
|
||||
var foo;
|
||||
after();
|
||||
|
||||
var after;
|
||||
}
|
||||
21
test/fixtures/codegen/autotest/code-before-after-surrounded/index.js
vendored
Normal file
21
test/fixtures/codegen/autotest/code-before-after-surrounded/index.js
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(builder) {
|
||||
var vars = builder.vars([ 'foo' ]);
|
||||
|
||||
vars.onBeforeGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('before', []));
|
||||
});
|
||||
|
||||
vars.onAfterGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('after', []));
|
||||
});
|
||||
|
||||
var ifStatement = builder.ifStatement('a > b', [
|
||||
builder.vars([ 'before' ]),
|
||||
vars,
|
||||
builder.vars([ 'after' ])
|
||||
]);
|
||||
|
||||
return ifStatement;
|
||||
};
|
||||
5
test/fixtures/codegen/autotest/code-before-after-var/expected.js
vendored
Normal file
5
test/fixtures/codegen/autotest/code-before-after-var/expected.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
if (a > b) {
|
||||
before();
|
||||
var foo;
|
||||
after();
|
||||
}
|
||||
19
test/fixtures/codegen/autotest/code-before-after-var/index.js
vendored
Normal file
19
test/fixtures/codegen/autotest/code-before-after-var/index.js
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(builder) {
|
||||
var vars = builder.vars([ 'foo' ]);
|
||||
|
||||
vars.onBeforeGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('before', []));
|
||||
});
|
||||
|
||||
vars.onAfterGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('after', []));
|
||||
});
|
||||
|
||||
var ifStatement = builder.ifStatement('a > b', [
|
||||
vars
|
||||
]);
|
||||
|
||||
return ifStatement;
|
||||
};
|
||||
4
test/fixtures/codegen/autotest/code-before-after/expected.js
vendored
Normal file
4
test/fixtures/codegen/autotest/code-before-after/expected.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
before();
|
||||
out.w("<div class=\"greeting\">Hello World</div>");
|
||||
|
||||
after();
|
||||
25
test/fixtures/codegen/autotest/code-before-after/index.js
vendored
Normal file
25
test/fixtures/codegen/autotest/code-before-after/index.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(builder) {
|
||||
var htmlElement = builder.htmlElement(
|
||||
'div',
|
||||
[
|
||||
{
|
||||
name: 'class',
|
||||
value: builder.literal('greeting')
|
||||
}
|
||||
],
|
||||
[
|
||||
builder.text(builder.literal('Hello World'))
|
||||
]);
|
||||
|
||||
htmlElement.onBeforeGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('before', []));
|
||||
});
|
||||
|
||||
htmlElement.onAfterGenerateCode((event) => {
|
||||
event.insertCode(builder.functionCall('after', []));
|
||||
});
|
||||
|
||||
return htmlElement;
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user