-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
experimental-syntax-test.js
37 lines (30 loc) · 1.03 KB
/
experimental-syntax-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { moduleFor, RenderingTest } from '../../utils/test-case';
import { strip } from '../../utils/abstract-test-case';
import { _registerMacros, _experimentalMacros } from 'ember-glimmer';
import { compileExpression } from '@glimmer/runtime';
moduleFor('registerMacros', class extends RenderingTest {
constructor() {
let originalMacros = _experimentalMacros.slice();
_registerMacros((blocks, inlines) => {
blocks.add('-let', (params, hash, _default, inverse, builder) => {
compileExpression(params[0], builder);
builder.invokeStatic(_default, 1);
});
});
super();
this.originalMacros = originalMacros;
}
teardown() {
_experimentalMacros.length = 0;
this.originalMacros.forEach(macro => _experimentalMacros.push(macro));
super.teardown();
}
['@test allows registering custom syntax via private API'](assert) {
this.render(strip`
{{#-let obj as |bar|}}
{{bar}}
{{/-let}}
`, { obj: 'hello world!'});
this.assertText('hello world!');
}
});