{"action":"created","comment":{"url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/comments/38769875","id":38769875,"diff_hunk":"@@ -0,0 +1,1461 @@\n+import Ember from 'ember';\n+import { moduleForComponent, test } from 'ember-qunit';\n+import hbs from 'htmlbars-inline-precompile';\n+import { skip } from 'qunit';\n+\n+const testContent = Ember.A([\n+    {\n+        date: new Date( 2022, 8, 17 ),\n+        label: 'Today!'\n+    }\n+]);\n+\n+const multipleTestContent = Ember.A([\n+    {\n+        date: new Date( 2022, 8, 17 ),\n+        label: 'Event 1 Today!'\n+    },\n+    {\n+        date: new Date( 2022, 8, 17 ),\n+        label: 'Event 2 Today!'\n+    },\n+    {\n+        date: new Date( 2022, 8, 17 ),\n+        label: 'Event 3 Today!'\n+    },\n+    {\n+        date: new Date( 2022, 8, 20 ),\n+        label: 'Event 1 Another Day!'\n+    }\n+]);\n+\n+moduleForComponent( 'sl-calendar', 'Integration | Component | sl calendar', {\n+    integration: true\n+});\n+\n+test( 'Setting currentYear and currentMonth modifies the view correctly', function( assert ) {\n+\n+    const currentYear = 2025;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 1;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'January ' + currentYear,\n+        'Current month and year are set correctly in the view'\n+    );\n+});\n+\n+skip( 'Setting dateValuePath modifies the view correctly', function( assert ) {\n+\n+    const modifiedValuePath = Ember.A([\n+        {\n+            modifiedDatePath: new Date( 2022, 8, 17 ),\n+            label: 'Today!'\n+        }\n+    ]);\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', modifiedValuePath );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            dateValuePath=\"modifiedDatePath\"\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        17,\n+        'Active day is set correctly'\n+    );\n+});\n+\n+skip( 'Active day is set correctly', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', Ember.A() );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        '',\n+        'No active day is set'\n+    );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        17,\n+        'Active day is set correctly'\n+    );\n+\n+    this.set( 'content', multipleTestContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    const active = this.$( '>:first-child .active' );\n+\n+    assert.equal(\n+        active.length,\n+        2,\n+        'There are two unique dates assigned the .active class'\n+    );\n+\n+    assert.equal(\n+        active[ 0 ].innerHTML,\n+        '17',\n+        'First unique date instance is correct'\n+    );\n+\n+    assert.equal(\n+        active[ 1 ].innerHTML,\n+        '20',\n+        'Second unique date instance is correct'\n+    );\n+});\n+\n+test( 'Setting locale to Spanish modifies the view correctly', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            locale=\"es\"\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'Septiembre ' + currentYear,\n+        'Current month in Spanish is set correctly in the view'\n+    );\n+});\n+\n+test( 'Action fires when day is clicked', function( assert ) {\n+\n+    assert.expect( 1 );\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            action=\"testAction\"\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    this.on( 'testAction', () => {\n+        assert.ok(\n+            true,\n+            'The test action was called'\n+        );\n+    });\n+\n+    this.$( '>:first-child .active' ).click();\n+});\n+\n+skip( 'Action passes through expected objects in content array', function( assert ) {\n+\n+    assert.expect( 8 );\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', multipleTestContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            action=\"testAction\"\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    this.on( 'testAction', ( dateContent ) => {\n+\n+        // This group of asserts verifies the multiple events on Sep. 17th\n+        if ( 'Event 1 Today!' === dateContent[ 0 ].label ) {\n+            assert.equal(\n+                dateContent[ 0 ].date.toString(),\n+                'Sat Sep 17 2022 00:00:00 GMT-0500 (CDT)',\n+                'The date property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 0 ].label,\n+                'Event 1 Today!',\n+                'The label property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 1 ].date.toString(),\n+                'Sat Sep 17 2022 00:00:00 GMT-0500 (CDT)',\n+                'The date property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 1 ].label,\n+                'Event 2 Today!',\n+                'The label property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 2 ].date.toString(),\n+                'Sat Sep 17 2022 00:00:00 GMT-0500 (CDT)',\n+                'The date property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 2 ].label,\n+                'Event 3 Today!',\n+                'The label property was passed through'\n+            );\n+        // This group of asserts verifies the event on Sep. 20th\n+        } else {\n+            assert.equal(\n+                dateContent[ 0 ].date.toString(),\n+                'Tue Sep 20 2022 00:00:00 GMT-0500 (CDT)',\n+                'The date property was passed through'\n+            );\n+\n+            assert.equal(\n+                dateContent[ 0 ].label,\n+                'Event 1 Another Day!',\n+                'The label property was passed through'\n+            );\n+        }\n+    });\n+\n+    this.$( '>:first-child .active' ).click();\n+});\n+\n+skip( 'Setting viewMode modifies the view correctly', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+        }}\n+    ` );\n+\n+    assert.ok(\n+        this.$( '>:first-child' ),\n+        '\"viewMode\" of days renders'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.ok(\n+        this.$( '>:first-child' ),\n+        '\"viewMode\" of months renders'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            viewMode=\"years\"\n+        }}\n+    ` );\n+\n+    assert.ok(\n+        this.$( '>:first-child' ),\n+        '\"viewMode\" of years renders'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'September ' + currentYear,\n+        'The current month and year are set correctly'\n+    );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        17,\n+        'The current day is set correctly'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            viewMode=\"months\"\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        'Sep',\n+        'The current month is set correctly'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            viewMode=\"years\"\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2020-2029',\n+        'The year range is set correctly'\n+    );\n+\n+    assert.equal(\n+        this.$( '>:first-child .active' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Forward by Month', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'September ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .next' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'October ' + currentYear,\n+        'The next month is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Backward by Month', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'September ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .prev' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'August ' + currentYear,\n+        'The previous month is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Forward by Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+\n+    this.$( '>:first-child .next' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear + 1,\n+        'The next year is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Backward by Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+\n+    this.$( '>:first-child .prev' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear - 1,\n+        'The previous year is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Forward by Decade', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            viewMode=\"years\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2020-2029',\n+        'The current Decade is set correctly'\n+    );\n+\n+    this.$( '>:first-child .next' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2030-2039',\n+        'The next Decade is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Backward by Decade', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            viewMode=\"years\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2020-2029',\n+        'The current Decade is set correctly'\n+    );\n+\n+    this.$( '>:first-child .prev' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2010-2019',\n+        'The previous Decade is set correctly'\n+    );\n+});\n+\n+test( 'When Locked, interacting with the view is not Possible', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 8;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar}}\n+    ` );\n+\n+    assert.strictEqual(\n+        this.$().hasClass( 'sl-calendar-locked' ),\n+        false,\n+        'Default rendered component does not have class \"sl-calendar-locked\"'\n+    );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            locked=true\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.ok(\n+        this.$( '>:first-child' ).hasClass( 'sl-calendar-locked' ),\n+        'Locked, rendered component has class \"sl-calendar-locked\"'\n+    );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'August ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .next' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'August ' + currentYear,\n+        'The next month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .prev' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'August ' + currentYear,\n+        'The next month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .datepicker-switch' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'August ' + currentYear,\n+        'The next month is set correctly'\n+    );\n+});\n+\n+test( 'Navigating from Month to Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'September ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .datepicker-switch' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+});\n+\n+test( 'Navigating from Year to Month', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 9;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+\n+    this.$( '>:first-child .active' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'September ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+});\n+\n+test( 'Navigating from Year to Decade', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+\n+    this.$( '>:first-child .datepicker-switch' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2020-2029',\n+        'The current decade is set correctly'\n+    );\n+});\n+\n+test( 'Navigating from Decade to Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            content=content\n+            currentYear=currentYear\n+            viewMode=\"years\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        '2020-2029',\n+        'The current decade is set correctly'\n+    );\n+\n+    this.$( '>:first-child .active' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        currentYear,\n+        'The current year is set correctly'\n+    );\n+});\n+\n+test( 'Navigating Forward by Month Crosses to Next Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 12;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'December ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .next' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'January ' + ( currentYear + 1 ),\n+        'The next month is in the next year'\n+    );\n+});\n+\n+test( 'Navigating Backward by Month Crosses to Previous Year', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    const currentMonth = 1;\n+    this.set( 'currentMonth', currentMonth );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            currentYear=currentYear\n+            currentMonth=currentMonth\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'January ' + currentYear,\n+        'The current month is set correctly'\n+    );\n+\n+    this.$( '>:first-child .prev' ).click();\n+\n+    assert.equal(\n+        this.$( '>:first-child .datepicker-switch' ).text().trim(),\n+        'December ' + ( currentYear - 1 ),\n+        'The previous month is in the previous year'\n+    );\n+});\n+\n+test( 'All Twelve Months are Displayed in Order', function( assert ) {\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            viewMode=\"months\"\n+        }}\n+    ` );\n+\n+    assert.equal(\n+        this.$( '>:first-child .month' ).text().trim(),\n+        'JanFebMarAprMayJunJulAugSepOctNovDec',\n+        'Twelve months are listed in order'\n+    );\n+});\n+\n+test( 'Twelve Years are Displayed in Order', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear', currentYear );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            viewMode=\"years\"\n+            currentYear=currentYear\n+        }}\n+    ` );\n+\n+    let yearsSelection = this.$( '>:first-child' ).find( 'td' ).text().trim();\n+    yearsSelection = yearsSelection.replace( /\\s+/g, '' );\n+\n+    assert.equal(\n+        yearsSelection,\n+        '201920202021202220232024202520262027202820292030',\n+        'Twelve years are listed in order'\n+    );\n+});\n+\n+// ******************************\n+// Start of Dual Component Tests\n+// ******************************\n+\n+test( 'Dual instance: Action fires when day is clicked', function( assert ) {\n+\n+    const currentYear1 = 2035;\n+    this.set( 'currentYear1', currentYear1 );\n+\n+    const currentMonth1 = 1;\n+    this.set( 'currentMonth1', currentMonth1 );\n+\n+    const currentYear2 = 2022;\n+    this.set( 'currentYear2', currentYear2 );\n+\n+    const currentMonth2 = 9;\n+    this.set( 'currentMonth2', currentMonth2 );\n+\n+    this.set( 'content', testContent );\n+\n+    this.render( hbs`\n+        {{sl-calendar\n+            action=\"testAction1\"\n+            content=content\n+            currentYear=currentYear1\n+            currentMonth=currentMonth1\n+        }}\n+        {{sl-calendar\n+            action=\"testAction2\"\n+            content=content\n+            currentYear=currentYear2\n+            currentMonth=currentMonth2\n+        }}\n+    ` );\n+\n+    this.on( 'testAction1', () => {\n+        assert.ok(\n+            true,\n+            'The test action 1 was called'\n+        );\n+    });\n+\n+    this.on( 'testAction2', () => {\n+        assert.ok(\n+            true,\n+            'The test action 2 was called'\n+        );\n+    });\n+\n+    this.$( '>:nth-child(2) .active' ).click();\n+});\n+\n+test( 'Dual instance: Navigating Forward by Month', function( assert ) {\n+\n+    const currentYear = 2022;\n+    this.set( 'currentYear1', currentYear );\n+    this.set( 'currentYear2', currentYear );\n+\n+    const currentMonth = 9;","path":"tests/integration/components/sl-calendar-test.js","position":907,"original_position":907,"commit_id":"b58e7307502511a56b7fc9db20bdb27f9e72a45d","original_commit_id":"b58e7307502511a56b7fc9db20bdb27f9e72a45d","user":{"login":"juwara0","id":8236686,"avatar_url":"https://avatars.githubusercontent.com/u/8236686?v=3","gravatar_id":"","url":"https://api.github.com/users/juwara0","html_url":"https://github.com/juwara0","followers_url":"https://api.github.com/users/juwara0/followers","following_url":"https://api.github.com/users/juwara0/following{/other_user}","gists_url":"https://api.github.com/users/juwara0/gists{/gist_id}","starred_url":"https://api.github.com/users/juwara0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juwara0/subscriptions","organizations_url":"https://api.github.com/users/juwara0/orgs","repos_url":"https://api.github.com/users/juwara0/repos","events_url":"https://api.github.com/users/juwara0/events{/privacy}","received_events_url":"https://api.github.com/users/juwara0/received_events","type":"User","site_admin":false},"body":"Removed","created_at":"2015-09-04T16:37:24Z","updated_at":"2015-09-04T16:37:24Z","html_url":"https://github.com/softlayer/sl-ember-components/pull/712#discussion_r38769875","pull_request_url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712","_links":{"self":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/comments/38769875"},"html":{"href":"https://github.com/softlayer/sl-ember-components/pull/712#discussion_r38769875"},"pull_request":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712"}}},"pull_request":{"url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712","id":43533947,"html_url":"https://github.com/softlayer/sl-ember-components/pull/712","diff_url":"https://github.com/softlayer/sl-ember-components/pull/712.diff","patch_url":"https://github.com/softlayer/sl-ember-components/pull/712.patch","issue_url":"https://api.github.com/repos/softlayer/sl-ember-components/issues/712","number":712,"state":"open","locked":false,"title":"Closes softlayer/sl-ember-components#578","user":{"login":"juwara0","id":8236686,"avatar_url":"https://avatars.githubusercontent.com/u/8236686?v=3","gravatar_id":"","url":"https://api.github.com/users/juwara0","html_url":"https://github.com/juwara0","followers_url":"https://api.github.com/users/juwara0/followers","following_url":"https://api.github.com/users/juwara0/following{/other_user}","gists_url":"https://api.github.com/users/juwara0/gists{/gist_id}","starred_url":"https://api.github.com/users/juwara0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juwara0/subscriptions","organizations_url":"https://api.github.com/users/juwara0/orgs","repos_url":"https://api.github.com/users/juwara0/repos","events_url":"https://api.github.com/users/juwara0/events{/privacy}","received_events_url":"https://api.github.com/users/juwara0/received_events","type":"User","site_admin":false},"body":"Wrote integration tests for sl-calendar\r\nAdded/Removed unit tests for sl-calendar\r\nAdded additional unit tests as skips to be implemented in issue: https://github.com/softlayer/sl-ember-components/issues/710","created_at":"2015-08-27T15:52:06Z","updated_at":"2015-09-04T16:37:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0db41cfc39993ff4bc8525f17bb4cbc9e078f064","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712/commits","review_comments_url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712/comments","review_comment_url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/comments{/number}","comments_url":"https://api.github.com/repos/softlayer/sl-ember-components/issues/712/comments","statuses_url":"https://api.github.com/repos/softlayer/sl-ember-components/statuses/b58e7307502511a56b7fc9db20bdb27f9e72a45d","head":{"label":"juwara0:578","ref":"578","sha":"b58e7307502511a56b7fc9db20bdb27f9e72a45d","user":{"login":"juwara0","id":8236686,"avatar_url":"https://avatars.githubusercontent.com/u/8236686?v=3","gravatar_id":"","url":"https://api.github.com/users/juwara0","html_url":"https://github.com/juwara0","followers_url":"https://api.github.com/users/juwara0/followers","following_url":"https://api.github.com/users/juwara0/following{/other_user}","gists_url":"https://api.github.com/users/juwara0/gists{/gist_id}","starred_url":"https://api.github.com/users/juwara0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juwara0/subscriptions","organizations_url":"https://api.github.com/users/juwara0/orgs","repos_url":"https://api.github.com/users/juwara0/repos","events_url":"https://api.github.com/users/juwara0/events{/privacy}","received_events_url":"https://api.github.com/users/juwara0/received_events","type":"User","site_admin":false},"repo":{"id":27789882,"name":"sl-ember-components","full_name":"juwara0/sl-ember-components","owner":{"login":"juwara0","id":8236686,"avatar_url":"https://avatars.githubusercontent.com/u/8236686?v=3","gravatar_id":"","url":"https://api.github.com/users/juwara0","html_url":"https://github.com/juwara0","followers_url":"https://api.github.com/users/juwara0/followers","following_url":"https://api.github.com/users/juwara0/following{/other_user}","gists_url":"https://api.github.com/users/juwara0/gists{/gist_id}","starred_url":"https://api.github.com/users/juwara0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juwara0/subscriptions","organizations_url":"https://api.github.com/users/juwara0/orgs","repos_url":"https://api.github.com/users/juwara0/repos","events_url":"https://api.github.com/users/juwara0/events{/privacy}","received_events_url":"https://api.github.com/users/juwara0/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/juwara0/sl-ember-components","description":"An Ember CLI Addon that provides a variety of UI components.","fork":true,"url":"https://api.github.com/repos/juwara0/sl-ember-components","forks_url":"https://api.github.com/repos/juwara0/sl-ember-components/forks","keys_url":"https://api.github.com/repos/juwara0/sl-ember-components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/juwara0/sl-ember-components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/juwara0/sl-ember-components/teams","hooks_url":"https://api.github.com/repos/juwara0/sl-ember-components/hooks","issue_events_url":"https://api.github.com/repos/juwara0/sl-ember-components/issues/events{/number}","events_url":"https://api.github.com/repos/juwara0/sl-ember-components/events","assignees_url":"https://api.github.com/repos/juwara0/sl-ember-components/assignees{/user}","branches_url":"https://api.github.com/repos/juwara0/sl-ember-components/branches{/branch}","tags_url":"https://api.github.com/repos/juwara0/sl-ember-components/tags","blobs_url":"https://api.github.com/repos/juwara0/sl-ember-components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/juwara0/sl-ember-components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/juwara0/sl-ember-components/git/refs{/sha}","trees_url":"https://api.github.com/repos/juwara0/sl-ember-components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/juwara0/sl-ember-components/statuses/{sha}","languages_url":"https://api.github.com/repos/juwara0/sl-ember-components/languages","stargazers_url":"https://api.github.com/repos/juwara0/sl-ember-components/stargazers","contributors_url":"https://api.github.com/repos/juwara0/sl-ember-components/contributors","subscribers_url":"https://api.github.com/repos/juwara0/sl-ember-components/subscribers","subscription_url":"https://api.github.com/repos/juwara0/sl-ember-components/subscription","commits_url":"https://api.github.com/repos/juwara0/sl-ember-components/commits{/sha}","git_commits_url":"https://api.github.com/repos/juwara0/sl-ember-components/git/commits{/sha}","comments_url":"https://api.github.com/repos/juwara0/sl-ember-components/comments{/number}","issue_comment_url":"https://api.github.com/repos/juwara0/sl-ember-components/issues/comments{/number}","contents_url":"https://api.github.com/repos/juwara0/sl-ember-components/contents/{+path}","compare_url":"https://api.github.com/repos/juwara0/sl-ember-components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/juwara0/sl-ember-components/merges","archive_url":"https://api.github.com/repos/juwara0/sl-ember-components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/juwara0/sl-ember-components/downloads","issues_url":"https://api.github.com/repos/juwara0/sl-ember-components/issues{/number}","pulls_url":"https://api.github.com/repos/juwara0/sl-ember-components/pulls{/number}","milestones_url":"https://api.github.com/repos/juwara0/sl-ember-components/milestones{/number}","notifications_url":"https://api.github.com/repos/juwara0/sl-ember-components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/juwara0/sl-ember-components/labels{/name}","releases_url":"https://api.github.com/repos/juwara0/sl-ember-components/releases{/id}","created_at":"2014-12-09T22:13:50Z","updated_at":"2015-04-29T16:41:25Z","pushed_at":"2015-09-03T15:34:55Z","git_url":"git://github.com/juwara0/sl-ember-components.git","ssh_url":"git@github.com:juwara0/sl-ember-components.git","clone_url":"https://github.com/juwara0/sl-ember-components.git","svn_url":"https://github.com/juwara0/sl-ember-components","homepage":"http://softlayer.github.io/sl-ember-components","size":5949,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"softlayer:EmberCli-1.13.8","ref":"EmberCli-1.13.8","sha":"daee66ee9a548c2e834c7b395e9fa870a98dba75","user":{"login":"softlayer","id":49550,"avatar_url":"https://avatars.githubusercontent.com/u/49550?v=3","gravatar_id":"","url":"https://api.github.com/users/softlayer","html_url":"https://github.com/softlayer","followers_url":"https://api.github.com/users/softlayer/followers","following_url":"https://api.github.com/users/softlayer/following{/other_user}","gists_url":"https://api.github.com/users/softlayer/gists{/gist_id}","starred_url":"https://api.github.com/users/softlayer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/softlayer/subscriptions","organizations_url":"https://api.github.com/users/softlayer/orgs","repos_url":"https://api.github.com/users/softlayer/repos","events_url":"https://api.github.com/users/softlayer/events{/privacy}","received_events_url":"https://api.github.com/users/softlayer/received_events","type":"Organization","site_admin":false},"repo":{"id":26869437,"name":"sl-ember-components","full_name":"softlayer/sl-ember-components","owner":{"login":"softlayer","id":49550,"avatar_url":"https://avatars.githubusercontent.com/u/49550?v=3","gravatar_id":"","url":"https://api.github.com/users/softlayer","html_url":"https://github.com/softlayer","followers_url":"https://api.github.com/users/softlayer/followers","following_url":"https://api.github.com/users/softlayer/following{/other_user}","gists_url":"https://api.github.com/users/softlayer/gists{/gist_id}","starred_url":"https://api.github.com/users/softlayer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/softlayer/subscriptions","organizations_url":"https://api.github.com/users/softlayer/orgs","repos_url":"https://api.github.com/users/softlayer/repos","events_url":"https://api.github.com/users/softlayer/events{/privacy}","received_events_url":"https://api.github.com/users/softlayer/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/softlayer/sl-ember-components","description":"An Ember CLI Addon that provides a variety of UI components.","fork":false,"url":"https://api.github.com/repos/softlayer/sl-ember-components","forks_url":"https://api.github.com/repos/softlayer/sl-ember-components/forks","keys_url":"https://api.github.com/repos/softlayer/sl-ember-components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/softlayer/sl-ember-components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/softlayer/sl-ember-components/teams","hooks_url":"https://api.github.com/repos/softlayer/sl-ember-components/hooks","issue_events_url":"https://api.github.com/repos/softlayer/sl-ember-components/issues/events{/number}","events_url":"https://api.github.com/repos/softlayer/sl-ember-components/events","assignees_url":"https://api.github.com/repos/softlayer/sl-ember-components/assignees{/user}","branches_url":"https://api.github.com/repos/softlayer/sl-ember-components/branches{/branch}","tags_url":"https://api.github.com/repos/softlayer/sl-ember-components/tags","blobs_url":"https://api.github.com/repos/softlayer/sl-ember-components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/softlayer/sl-ember-components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/softlayer/sl-ember-components/git/refs{/sha}","trees_url":"https://api.github.com/repos/softlayer/sl-ember-components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/softlayer/sl-ember-components/statuses/{sha}","languages_url":"https://api.github.com/repos/softlayer/sl-ember-components/languages","stargazers_url":"https://api.github.com/repos/softlayer/sl-ember-components/stargazers","contributors_url":"https://api.github.com/repos/softlayer/sl-ember-components/contributors","subscribers_url":"https://api.github.com/repos/softlayer/sl-ember-components/subscribers","subscription_url":"https://api.github.com/repos/softlayer/sl-ember-components/subscription","commits_url":"https://api.github.com/repos/softlayer/sl-ember-components/commits{/sha}","git_commits_url":"https://api.github.com/repos/softlayer/sl-ember-components/git/commits{/sha}","comments_url":"https://api.github.com/repos/softlayer/sl-ember-components/comments{/number}","issue_comment_url":"https://api.github.com/repos/softlayer/sl-ember-components/issues/comments{/number}","contents_url":"https://api.github.com/repos/softlayer/sl-ember-components/contents/{+path}","compare_url":"https://api.github.com/repos/softlayer/sl-ember-components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/softlayer/sl-ember-components/merges","archive_url":"https://api.github.com/repos/softlayer/sl-ember-components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/softlayer/sl-ember-components/downloads","issues_url":"https://api.github.com/repos/softlayer/sl-ember-components/issues{/number}","pulls_url":"https://api.github.com/repos/softlayer/sl-ember-components/pulls{/number}","milestones_url":"https://api.github.com/repos/softlayer/sl-ember-components/milestones{/number}","notifications_url":"https://api.github.com/repos/softlayer/sl-ember-components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/softlayer/sl-ember-components/labels{/name}","releases_url":"https://api.github.com/repos/softlayer/sl-ember-components/releases{/id}","created_at":"2014-11-19T16:07:47Z","updated_at":"2015-08-28T23:33:44Z","pushed_at":"2015-09-03T22:11:01Z","git_url":"git://github.com/softlayer/sl-ember-components.git","ssh_url":"git@github.com:softlayer/sl-ember-components.git","clone_url":"https://github.com/softlayer/sl-ember-components.git","svn_url":"https://github.com/softlayer/sl-ember-components","homepage":"http://softlayer.github.io/sl-ember-components","size":12596,"stargazers_count":87,"watchers_count":87,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":23,"mirror_url":null,"open_issues_count":208,"forks":23,"open_issues":208,"watchers":87,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712"},"html":{"href":"https://github.com/softlayer/sl-ember-components/pull/712"},"issue":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/issues/712"},"comments":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/issues/712/comments"},"review_comments":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712/comments"},"review_comment":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/pulls/712/commits"},"statuses":{"href":"https://api.github.com/repos/softlayer/sl-ember-components/statuses/b58e7307502511a56b7fc9db20bdb27f9e72a45d"}}}}