Skip to content

Commit bc505f5

Browse files
authored
Merge pull request #16933 from cibernox/bug-concatenated-classes-on-contextual-glimmer-components-with-splattributes
Failing test for concatenated classes on contextual glimmer components
2 parents b250720 + 807c489 commit bc505f5

File tree

3 files changed

+124
-86
lines changed

3 files changed

+124
-86
lines changed

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@
6464
"resolve": "^1.6.0"
6565
},
6666
"devDependencies": {
67-
"@glimmer/compiler": "^0.35.4",
67+
"@glimmer/compiler": "^0.35.8",
6868
"@glimmer/env": "^0.1.7",
69-
"@glimmer/interfaces": "^0.35.4",
70-
"@glimmer/node": "^0.35.4",
71-
"@glimmer/opcode-compiler": "^0.35.4",
72-
"@glimmer/program": "^0.35.4",
73-
"@glimmer/reference": "^0.35.4",
74-
"@glimmer/runtime": "^0.35.4",
69+
"@glimmer/interfaces": "^0.35.8",
70+
"@glimmer/node": "^0.35.8",
71+
"@glimmer/opcode-compiler": "^0.35.8",
72+
"@glimmer/program": "^0.35.8",
73+
"@glimmer/reference": "^0.35.8",
74+
"@glimmer/runtime": "^0.35.8",
7575
"@types/qunit": "^2.5.0",
7676
"@types/rsvp": "^4.0.1",
7777
"amd-name-resolver": "^1.2.0",

packages/@ember/-internals/glimmer/tests/integration/components/angle-bracket-invocation-test.js

+38
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,44 @@ if (EMBER_GLIMMER_ANGLE_BRACKET_INVOCATION) {
783783
});
784784
}
785785

786+
'@test merges class attribute with `...attributes` in yielded contextual component ("splattributes")'() {
787+
this.registerComponent('foo-bar', {
788+
ComponentClass: Component.extend({ tagName: '' }),
789+
template: '{{yield (hash baz=(component "foo-bar/baz"))}}',
790+
});
791+
this.registerComponent('foo-bar/baz', {
792+
ComponentClass: Component.extend({ tagName: '' }),
793+
template: '<div class="default-class" ...attributes>hello</div>',
794+
});
795+
796+
this.render('<FooBar as |fb|><fb.baz class="custom-class" title="foo"></fb.baz></FooBar>');
797+
798+
this.assertElement(this.firstChild, {
799+
tagName: 'div',
800+
attrs: { class: classes('default-class custom-class'), title: 'foo' },
801+
content: 'hello',
802+
});
803+
}
804+
805+
'@test the attributes passed on invocation trump over the default ones on elements with `...attributes` in yielded contextual component ("splattributes")'() {
806+
this.registerComponent('foo-bar', {
807+
ComponentClass: Component.extend({ tagName: '' }),
808+
template: '{{yield (hash baz=(component "foo-bar/baz"))}}',
809+
});
810+
this.registerComponent('foo-bar/baz', {
811+
ComponentClass: Component.extend({ tagName: '' }),
812+
template: '<div title="bar" ...attributes>hello</div>',
813+
});
814+
815+
this.render('<FooBar as |fb|><fb.baz title="foo"></fb.baz></FooBar>');
816+
817+
this.assertElement(this.firstChild, {
818+
tagName: 'div',
819+
attrs: { title: 'foo' },
820+
content: 'hello',
821+
});
822+
}
823+
786824
'@test can include `...attributes` in multiple elements in tagless component ("splattributes")'() {
787825
this.registerComponent('foo-bar', {
788826
ComponentClass: Component.extend({ tagName: '' }),

yarn.lock

+79-79
Original file line numberDiff line numberDiff line change
@@ -2,105 +2,105 @@
22
# yarn lockfile v1
33

44

5-
"@glimmer/compiler@^0.35.4":
6-
version "0.35.4"
7-
resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.35.4.tgz#2f542dfe05b444bd5f53175b7f353531daa218e7"
5+
"@glimmer/compiler@^0.35.8":
6+
version "0.35.8"
7+
resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.35.8.tgz#1096f8d1abfbe2101c454bce476a6e829a3776a9"
88
dependencies:
9-
"@glimmer/interfaces" "^0.35.4"
10-
"@glimmer/syntax" "^0.35.4"
11-
"@glimmer/util" "^0.35.4"
12-
"@glimmer/wire-format" "^0.35.4"
9+
"@glimmer/interfaces" "^0.35.8"
10+
"@glimmer/syntax" "^0.35.8"
11+
"@glimmer/util" "^0.35.8"
12+
"@glimmer/wire-format" "^0.35.8"
1313

14-
"@glimmer/encoder@^0.35.4":
15-
version "0.35.4"
16-
resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.35.4.tgz#8523f5f862dfe81ef9c39fee759f062dfe73604c"
14+
"@glimmer/encoder@^0.35.8":
15+
version "0.35.8"
16+
resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.35.8.tgz#ce57a9d60e49e2faef987c6cb22c31fb78bb0a48"
1717

1818
"@glimmer/env@^0.1.7":
1919
version "0.1.7"
2020
resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07"
2121

22-
"@glimmer/interfaces@^0.35.4":
23-
version "0.35.4"
24-
resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.35.4.tgz#98ee7d81a663bb095155bf078b67a9bfbfd2a0ef"
22+
"@glimmer/interfaces@^0.35.8":
23+
version "0.35.8"
24+
resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.35.8.tgz#bd82fcb0a77959b17d5adeaf561fea9dfb3b9a9a"
2525
dependencies:
26-
"@glimmer/wire-format" "^0.35.4"
26+
"@glimmer/wire-format" "^0.35.8"
2727

28-
"@glimmer/low-level@^0.35.4":
29-
version "0.35.4"
30-
resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.35.4.tgz#ae68811b8533a4d3a80c2c049265439fd5786a7f"
28+
"@glimmer/low-level@^0.35.8":
29+
version "0.35.8"
30+
resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.35.8.tgz#0c16ed531a8d14b57a86862768f10072de876dfe"
3131

32-
"@glimmer/node@^0.35.4":
33-
version "0.35.4"
34-
resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.35.4.tgz#6101e2b9f953f44584927907b760aec2e1f5cbda"
32+
"@glimmer/node@^0.35.8":
33+
version "0.35.8"
34+
resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.35.8.tgz#7ab3fbc114cf1a7b3d0c60db936c80c8b60c0af3"
3535
dependencies:
36-
"@glimmer/interfaces" "^0.35.4"
37-
"@glimmer/runtime" "^0.35.4"
36+
"@glimmer/interfaces" "^0.35.8"
37+
"@glimmer/runtime" "^0.35.8"
3838
simple-dom "^0.3.0"
3939

40-
"@glimmer/opcode-compiler@^0.35.4":
41-
version "0.35.4"
42-
resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.35.4.tgz#184d76e9fc87d10b06dc5862c20fb3ca995653fb"
43-
dependencies:
44-
"@glimmer/encoder" "^0.35.4"
45-
"@glimmer/interfaces" "^0.35.4"
46-
"@glimmer/program" "^0.35.4"
47-
"@glimmer/reference" "^0.35.4"
48-
"@glimmer/util" "^0.35.4"
49-
"@glimmer/vm" "^0.35.4"
50-
"@glimmer/wire-format" "^0.35.4"
51-
52-
"@glimmer/program@^0.35.4":
53-
version "0.35.4"
54-
resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.35.4.tgz#ffdbe806fc310efa4d0370ab783ee0bd44207ca1"
55-
dependencies:
56-
"@glimmer/encoder" "^0.35.4"
57-
"@glimmer/interfaces" "^0.35.4"
58-
"@glimmer/util" "^0.35.4"
59-
60-
"@glimmer/reference@^0.35.4":
61-
version "0.35.4"
62-
resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.35.4.tgz#1d5c8baa65be68d735d4384d0e8f8bf24761e5cb"
63-
dependencies:
64-
"@glimmer/util" "^0.35.4"
65-
66-
"@glimmer/runtime@^0.35.4":
67-
version "0.35.4"
68-
resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.35.4.tgz#4eb352f2a9b25e30e8067da2da0c59d04c1b7cda"
69-
dependencies:
70-
"@glimmer/interfaces" "^0.35.4"
71-
"@glimmer/low-level" "^0.35.4"
72-
"@glimmer/program" "^0.35.4"
73-
"@glimmer/reference" "^0.35.4"
74-
"@glimmer/util" "^0.35.4"
75-
"@glimmer/vm" "^0.35.4"
76-
"@glimmer/wire-format" "^0.35.4"
77-
78-
"@glimmer/syntax@^0.35.4":
79-
version "0.35.4"
80-
resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.35.4.tgz#d5f092ddacc1f5086de754d2b9880a96e8c59dcc"
81-
dependencies:
82-
"@glimmer/interfaces" "^0.35.4"
83-
"@glimmer/util" "^0.35.4"
40+
"@glimmer/opcode-compiler@^0.35.8":
41+
version "0.35.8"
42+
resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.35.8.tgz#85728a11d33d66c5cc06b8a4cb8a61771e6dc1db"
43+
dependencies:
44+
"@glimmer/encoder" "^0.35.8"
45+
"@glimmer/interfaces" "^0.35.8"
46+
"@glimmer/program" "^0.35.8"
47+
"@glimmer/reference" "^0.35.8"
48+
"@glimmer/util" "^0.35.8"
49+
"@glimmer/vm" "^0.35.8"
50+
"@glimmer/wire-format" "^0.35.8"
51+
52+
"@glimmer/program@^0.35.8":
53+
version "0.35.8"
54+
resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.35.8.tgz#3dbf9b85a9c1b12fdaaf9fc2036c280e16df395f"
55+
dependencies:
56+
"@glimmer/encoder" "^0.35.8"
57+
"@glimmer/interfaces" "^0.35.8"
58+
"@glimmer/util" "^0.35.8"
59+
60+
"@glimmer/reference@^0.35.8":
61+
version "0.35.8"
62+
resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.35.8.tgz#95283835698bc7ee5fef6208b9dc66c2bbad8a71"
63+
dependencies:
64+
"@glimmer/util" "^0.35.8"
65+
66+
"@glimmer/runtime@^0.35.8":
67+
version "0.35.8"
68+
resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.35.8.tgz#4aaabe3682b01c77f47b95768b74d70d9e64d2a6"
69+
dependencies:
70+
"@glimmer/interfaces" "^0.35.8"
71+
"@glimmer/low-level" "^0.35.8"
72+
"@glimmer/program" "^0.35.8"
73+
"@glimmer/reference" "^0.35.8"
74+
"@glimmer/util" "^0.35.8"
75+
"@glimmer/vm" "^0.35.8"
76+
"@glimmer/wire-format" "^0.35.8"
77+
78+
"@glimmer/syntax@^0.35.8":
79+
version "0.35.8"
80+
resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.35.8.tgz#52fa3075514851f5ffc2ea629d35716c9eebb7f2"
81+
dependencies:
82+
"@glimmer/interfaces" "^0.35.8"
83+
"@glimmer/util" "^0.35.8"
8484
handlebars "^4.0.6"
8585
simple-html-tokenizer "^0.5.5"
8686

87-
"@glimmer/util@^0.35.4":
88-
version "0.35.4"
89-
resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.35.4.tgz#7dc99e25c63443c7ae74a2895ca4a52fdee78477"
87+
"@glimmer/util@^0.35.8":
88+
version "0.35.8"
89+
resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.35.8.tgz#ec2d7aa4897b77ba96275bb2ea803c6c6dcf0eef"
9090

91-
"@glimmer/vm@^0.35.4":
92-
version "0.35.4"
93-
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.35.4.tgz#cd2a34c76231dd4ff10ec9965391e1cf53499e2d"
91+
"@glimmer/vm@^0.35.8":
92+
version "0.35.8"
93+
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.35.8.tgz#2db9a0f7cb94340640253da339f91b09546179c3"
9494
dependencies:
95-
"@glimmer/interfaces" "^0.35.4"
96-
"@glimmer/program" "^0.35.4"
97-
"@glimmer/util" "^0.35.4"
95+
"@glimmer/interfaces" "^0.35.8"
96+
"@glimmer/program" "^0.35.8"
97+
"@glimmer/util" "^0.35.8"
9898

99-
"@glimmer/wire-format@^0.35.4":
100-
version "0.35.4"
101-
resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.35.4.tgz#f718b96cb61f43ce95d7dfae6ee511be90a1f8cb"
99+
"@glimmer/wire-format@^0.35.8":
100+
version "0.35.8"
101+
resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.35.8.tgz#61f58bce456f7c9aca0d338c31b91aa74b911911"
102102
dependencies:
103-
"@glimmer/util" "^0.35.4"
103+
"@glimmer/util" "^0.35.8"
104104

105105
"@types/acorn@^4.0.3":
106106
version "4.0.3"

0 commit comments

Comments
 (0)