@@ -17,8 +17,9 @@ import ChartjsController from '../dist/controller';
1717// Controller used to check the actual controller was properly booted
1818class CheckController extends Controller {
1919 connect ( ) {
20- this . element . addEventListener ( 'chartjs:connect' , ( ) => {
20+ this . element . addEventListener ( 'chartjs:connect' , ( event ) => {
2121 this . element . classList . add ( 'connected' ) ;
22+ this . element . chart = event . detail . chart ;
2223 } ) ;
2324 }
2425}
@@ -32,24 +33,43 @@ const startStimulus = () => {
3233describe ( 'ChartjsController' , ( ) => {
3334 let container ;
3435
35- beforeEach ( ( ) => {
36+ afterEach ( ( ) => {
37+ clearDOM ( ) ;
38+ } ) ;
39+
40+ it ( 'connect without options' , async ( ) => {
3641 container = mountDOM ( `
3742 <canvas
3843 data-testid="canvas"
3944 data-controller="check chartjs"
4045 data-view="{"type":"line","data":{"labels":["January","February","March","April","May","June","July"],"datasets":[{"label":"My First dataset","backgroundColor":"rgb(255, 99, 132)","borderColor":"rgb(255, 99, 132)","data":[0,10,5,2,20,30,45]}]},"options":[]}"
4146 ></canvas>
4247 ` ) ;
43- } ) ;
4448
45- afterEach ( ( ) => {
46- clearDOM ( ) ;
49+ expect ( getByTestId ( container , 'canvas' ) ) . not . toHaveClass ( 'connected' ) ;
50+
51+ startStimulus ( ) ;
52+ await waitFor ( ( ) => expect ( getByTestId ( container , 'canvas' ) ) . toHaveClass ( 'connected' ) ) ;
53+
54+ const chart = getByTestId ( container , 'canvas' ) . chart ;
55+ expect ( chart . options . showLines ) . toBe ( true ) ;
4756 } ) ;
4857
49- it ( 'connect' , async ( ) => {
58+ it ( 'connect with options' , async ( ) => {
59+ container = mountDOM ( `
60+ <canvas
61+ data-testid="canvas"
62+ data-controller="check chartjs"
63+ data-view="{"type":"line","data":{"labels":["January","February","March","April","May","June","July"],"datasets":[{"label":"My First dataset","backgroundColor":"rgb(255, 99, 132)","borderColor":"rgb(255, 99, 132)","data":[0,10,5,2,20,30,45]}]},"options":{"showLines":false}}"
64+ ></canvas>
65+ ` ) ;
66+
5067 expect ( getByTestId ( container , 'canvas' ) ) . not . toHaveClass ( 'connected' ) ;
5168
5269 startStimulus ( ) ;
5370 await waitFor ( ( ) => expect ( getByTestId ( container , 'canvas' ) ) . toHaveClass ( 'connected' ) ) ;
71+
72+ const chart = getByTestId ( container , 'canvas' ) . chart ;
73+ expect ( chart . options . showLines ) . toBe ( false ) ;
5474 } ) ;
5575} ) ;
0 commit comments