@@ -4,6 +4,10 @@ import * as assert from 'intern/chai!assert';
4
4
import { Base as MetaBase } from '../../../src/meta/Base' ;
5
5
import { stub , SinonStub , spy } from 'sinon' ;
6
6
import NodeHandler from '../../../src/NodeHandler' ;
7
+ import { v } from '../../../src/d' ;
8
+ import { ProjectorMixin } from '../../../src/main' ;
9
+ import { WidgetBase } from '../../../src/WidgetBase' ;
10
+ import { ThemeableMixin } from './../../../src/mixins/Themeable' ;
7
11
8
12
let rAFStub : SinonStub ;
9
13
let cancelrAFStub : SinonStub ;
@@ -179,5 +183,35 @@ registerSuite({
179
183
meta . callInvalidate ( ) ;
180
184
resolveRAF ( ) ;
181
185
assert . isTrue ( cancelrAFStub . calledThrice ) ;
186
+ } ,
187
+ 'integration' ( ) {
188
+ // class TestWidgetBase<P = any> extends ThemeableMixin(WidgetBase)<P> {}
189
+
190
+ class MyMeta extends MetaBase {
191
+ callGetNode ( key : string ) {
192
+ return this . getNode ( key ) ;
193
+ }
194
+ }
195
+
196
+ class TestWidget extends ProjectorMixin ( WidgetBase ) {
197
+ render ( ) {
198
+ return v ( 'div' , { key : 'foo' } , [
199
+ v ( 'div' , { 'key' : 'bar' } , [ 'hello world' ] )
200
+ ] ) ;
201
+ }
202
+
203
+ getMeta ( ) {
204
+ return this . meta ( MyMeta ) ;
205
+ }
206
+ }
207
+
208
+ const div = document . createElement ( 'div' ) ;
209
+
210
+ const widget = new TestWidget ( ) ;
211
+ widget . append ( div ) ;
212
+ const meta = widget . getMeta ( ) ;
213
+
214
+ assert . isTrue ( meta . has ( 'foo' ) ) ;
215
+ assert . isTrue ( meta . has ( 'bar' ) ) ;
182
216
}
183
217
} ) ;
0 commit comments