diff --git a/package.json b/package.json index 1b417336f..6bea45c4c 100644 --- a/package.json +++ b/package.json @@ -56,11 +56,11 @@ "eslint-plugin-prettier": "^2.6.0", "eslint-plugin-vue": "^4.0.0", "html-webpack-plugin": "^3.2.0", - "html2jade": "^0.8.6", "husky": "^0.12.0", "isparta": "^4.0.0", "isparta-loader": "^2.0.0", "jest": "^23.5.0", + "jest-serializer-vue": "^2.0.2", "lint-staged": "^8.1.0", "prettier": "^1.10.2", "prettier-eslint": "^8.8.1", diff --git a/tests/client.jest.json b/tests/client.jest.json index cfb16997e..a725ed250 100644 --- a/tests/client.jest.json +++ b/tests/client.jest.json @@ -4,6 +4,9 @@ "transform": { ".*\\.(js|vue)$": "/tests/preprocessor.js" }, + "snapshotSerializers": [ + "jest-serializer-vue" + ], "testPathIgnorePatterns": [ "/node_modules/", "/debug/" diff --git a/tests/client/components/__snapshots__/carousel.spec.js.snap b/tests/client/components/__snapshots__/carousel.spec.js.snap index 17f9c2a46..84d9cca21 100644 --- a/tests/client/components/__snapshots__/carousel.spec.js.snap +++ b/tests/client/components/__snapshots__/carousel.spec.js.snap @@ -1,249 +1,290 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Carousel should apply custom slides per page when responsive param provided 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should apply default carousel width when element has 0 width 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should be unable to advance backward by default 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should be unable to advance forward by default (no slides added) 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should begin autoplaying when option specified 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should decrease current page number by 1 when advance page backward is called 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should decrease current slide number by 1 when advance slide backward is called 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 2', value='Item 2', aria-label='Item 2', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 3', value='Item 3', aria-label='Item 3', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should fall back to default slides per page when no responsive param provided 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active(tabindex='-1', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should increase current page number by 1 when advance page is called 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 2', value='Item 2', aria-label='Item 2', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 3', value='Item 3', aria-label='Item 3', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should increase current page number by 1 when advance page is called with a non "backward" argument 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 2', value='Item 2', aria-label='Item 2', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 3', value='Item 3', aria-label='Item 3', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should loop back to the start when loop is true and advance page non "backward" is called from the last page 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should loop to the end when loop is true and advance page "backward" is called from the first page 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should mount successfully 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should not reset autoplay when switching slide with autoplayHoverPause 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should only count slides matching tagName 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ + +
`; exports[`Carousel should register 0 slides when 0 slides are added to the slots 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; exports[`Carousel should register 3 slides when 3 slides are added to the slots 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide.VueCarousel-slide-active(tabindex='-1', role='tabpanel') - .VueCarousel-slide.VueCarousel-slide-active(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should reset autoplay when switching slide without autoplayHoverPause 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should set carousel height to slide height 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: 200px;') - .VueCarousel-slide.VueCarousel-slide-adjustableHeight(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide.VueCarousel-slide-adjustableHeight(tabindex='-1', aria-hidden='true', role='tabpanel') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center.VueCarousel-slide-adjustableHeight(tabindex='-1', role='tabpanel') -// -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 2', value='Item 2', aria-label='Item 2', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ +
+
+
+
`; exports[`Carousel should unmount successfully 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') -" +
+
+ +
+ + +
`; diff --git a/tests/client/components/__snapshots__/navigation.spec.js.snap b/tests/client/components/__snapshots__/navigation.spec.js.snap index 0a630d5bb..4f77adef3 100644 --- a/tests/client/components/__snapshots__/navigation.spec.js.snap +++ b/tests/client/components/__snapshots__/navigation.spec.js.snap @@ -1,91 +1,76 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Navigation should mount successfully 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -| -.VueCarousel-navigation - button.VueCarousel-navigation-button.VueCarousel-navigation-prev(type='button', aria-label='Previous page', tabindex='0', style='padding: 8px; margin-right: -8px;') ◀ - | - button.VueCarousel-navigation-button.VueCarousel-navigation-next.VueCarousel-navigation--disabled(type='button', aria-label='Next page', tabindex='-1', style='padding: 8px; margin-left: -8px;') ▶ -| -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+
+
+
+
+
`; exports[`Navigation should render a next button 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -| -.VueCarousel-navigation - button.VueCarousel-navigation-button.VueCarousel-navigation-prev(type='button', aria-label='Previous page', tabindex='0', style='padding: 8px; margin-right: -8px;') ◀ - | - button.VueCarousel-navigation-button.VueCarousel-navigation-next.VueCarousel-navigation--disabled(type='button', aria-label='Next page', tabindex='-1', style='padding: 8px; margin-left: -8px;') ▶ -| -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+
+
+
+
+
`; exports[`Navigation should render a prev button 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -| -.VueCarousel-navigation - button.VueCarousel-navigation-button.VueCarousel-navigation-prev(type='button', aria-label='Previous page', tabindex='0', style='padding: 8px; margin-right: -8px;') ◀ - | - button.VueCarousel-navigation-button.VueCarousel-navigation-next.VueCarousel-navigation--disabled(type='button', aria-label='Next page', tabindex='-1', style='padding: 8px; margin-left: -8px;') ▶ -| -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+
+
+
+
+
`; exports[`Navigation should trigger page advance backward when prev is clicked 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -| -.VueCarousel-navigation - button.VueCarousel-navigation-button.VueCarousel-navigation-prev(type='button', aria-label='Previous page', tabindex='0', style='padding: 8px; margin-right: -8px;') ◀ - | - button.VueCarousel-navigation-button.VueCarousel-navigation-next.VueCarousel-navigation--disabled(type='button', aria-label='Next page', tabindex='-1', style='padding: 8px; margin-left: -8px;') ▶ -| -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+
+
+
+
+
`; exports[`Navigation should trigger page advance when next is clicked 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', role='tabpanel', aria-hidden='true') - .VueCarousel-slide.VueCarousel-slide-active.VueCarousel-slide-center(tabindex='-1', role='tabpanel') -| -.VueCarousel-navigation - button.VueCarousel-navigation-button.VueCarousel-navigation-prev(type='button', aria-label='Previous page', tabindex='0', style='padding: 8px; margin-right: -8px;') ◀ - | - button.VueCarousel-navigation-button.VueCarousel-navigation-next.VueCarousel-navigation--disabled(type='button', aria-label='Next page', tabindex='-1', style='padding: 8px; margin-left: -8px;') ▶ -| -.VueCarousel-pagination(style='') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='false', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(239, 239, 239);') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 1', value='Item 1', aria-label='Item 1', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+
+
+
+
+
`; diff --git a/tests/client/components/__snapshots__/slide.spec.js.snap b/tests/client/components/__snapshots__/slide.spec.js.snap index a66ace364..f5b5f5329 100644 --- a/tests/client/components/__snapshots__/slide.spec.js.snap +++ b/tests/client/components/__snapshots__/slide.spec.js.snap @@ -1,12 +1,15 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Slide should mount successfully 1`] = ` -".VueCarousel-wrapper - .VueCarousel-inner(style='transform: translate(0px, 0); visibility: hidden; height: auto;') - .VueCarousel-slide(tabindex='-1', aria-hidden='true', role='tabpanel') -// -.VueCarousel-pagination(style='display: none;') - .VueCarousel-dot-container(role='tablist', style='margin-top: 20px;') - button.VueCarousel-dot.VueCarousel-dot--active(aria-hidden='false', role='tab', title='Item 0', value='Item 0', aria-label='Item 0', aria-selected='true', style='margin-top: 20px; padding: 10px; width: 10px; height: 10px; background-color: rgb(0, 0, 0);') -" +
+
+ +
+ + +
`; diff --git a/tests/client/components/carousel.spec.js b/tests/client/components/carousel.spec.js index 6da1b54b0..cb6bc7b10 100644 --- a/tests/client/components/carousel.spec.js +++ b/tests/client/components/carousel.spec.js @@ -1,7 +1,6 @@ /* eslint-disable */ import { mount } from '@vue/test-utils'; -const utils = require('../utils'); const Carousel = require('../../../src/Carousel.vue'); const Slide = require('../../../src/Slide.vue'); @@ -12,7 +11,7 @@ describe('Carousel', () => { expect(wrapper.vm._isMounted).toBeTruthy(); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); it('should unmount successfully', () => { @@ -22,7 +21,7 @@ describe('Carousel', () => { carouselInstance.$destroy(); expect(carouselInstance._isDestroyed).toBeTruthy(); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); it('should be unable to advance backward by default', () => { @@ -30,7 +29,7 @@ describe('Carousel', () => { expect(wrapper.vm.canAdvanceBackward).toBeFalsy(); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); it('should be unable to advance forward by default (no slides added)', () => { @@ -38,7 +37,7 @@ describe('Carousel', () => { expect(wrapper.vm.canAdvanceForward).toBeFalsy(); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); it('should apply custom slides per page when responsive param provided', () => { @@ -50,10 +49,10 @@ describe('Carousel', () => { expect(wrapper.vm.currentPerPage).toBe(20); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); - it('should fall back to default slides per page when no responsive param provided', () => { + it('should fall back to default slides per page when no responsive param provided', done => { const wrapper = mount(Carousel, { propsData: { scrollPerPage: true, @@ -67,7 +66,10 @@ describe('Carousel', () => { expect(wrapper.vm.currentPerPage).toBe(2); expect(wrapper.vm.pageCount).toBe(2); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); it('should apply default carousel width when element has 0 width', () => { @@ -75,7 +77,7 @@ describe('Carousel', () => { expect(wrapper.vm.carouselWidth).toBe(0); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); it('should go to second slide when we have odd number of slides and recompute carousel width', done => { @@ -105,10 +107,10 @@ describe('Carousel', () => { expect(wrapper.vm.slideCount).toBe(0); - return utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); }); - it('should register 3 slides when 3 slides are added to the slots', () => { + it('should register 3 slides when 3 slides are added to the slots', done => { const wrapper = mount(Carousel, { slots: { default: [Slide, Slide, Slide] @@ -117,7 +119,10 @@ describe('Carousel', () => { expect(wrapper.vm.slideCount).toBe(3); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); it('should decrease current page number by 1 when advance page backward is called', done => { @@ -134,7 +139,7 @@ describe('Carousel', () => { wrapper.vm.goToPage(2); wrapper.vm.advancePage('backward'); expect(wrapper.vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); @@ -153,7 +158,7 @@ describe('Carousel', () => { wrapper.vm.goToPage(1); wrapper.vm.advancePage(); expect(wrapper.vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); @@ -172,7 +177,7 @@ describe('Carousel', () => { wrapper.vm.goToPage(1); wrapper.vm.advancePage('something'); expect(wrapper.vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); @@ -192,7 +197,7 @@ describe('Carousel', () => { wrapper.vm.goToPage(2); wrapper.vm.advancePage('backward'); expect(wrapper.vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); @@ -212,7 +217,7 @@ describe('Carousel', () => { wrapper.vm.goToPage(1); wrapper.vm.advancePage(); expect(wrapper.vm.currentPage).toBe(0); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); @@ -231,12 +236,12 @@ describe('Carousel', () => { wrapper.vm.$nextTick(() => { wrapper.vm.advancePage('backward'); expect(wrapper.vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); - it('should begin autoplaying when option specified', () => { + it('should begin autoplaying when option specified', done => { const wrapper = mount(Carousel, { propsData: { perPage: 1, @@ -251,10 +256,13 @@ describe('Carousel', () => { expect(wrapper.vm.autoplayInterval).toBeDefined(); wrapper.vm.pauseAutoplay(); expect(wrapper.vm.autoplayInterval).toBe(undefined); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); - it('should reset autoplay when switching slide without autoplayHoverPause', () => { + it('should reset autoplay when switching slide without autoplayHoverPause', done => { const wrapper = mount(Carousel, { propsData: { perPage: 1, @@ -270,10 +278,13 @@ describe('Carousel', () => { wrapper.vm.goToPage(2); expect(wrapper.vm.restartAutoplay).toHaveBeenCalled(); spy.mockRestore(); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); - it('should not reset autoplay when switching slide with autoplayHoverPause', () => { + it('should not reset autoplay when switching slide with autoplayHoverPause', done => { const wrapper = mount(Carousel, { propsData: { perPage: 1, @@ -289,10 +300,13 @@ describe('Carousel', () => { wrapper.vm.goToPage(2); expect(wrapper.vm.restartAutoplay).not.toHaveBeenCalled(); spy.mockRestore(); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); - it('should only count slides matching tagName', () => { + it('should only count slides matching tagName', done => { const CustomSlide = { extends: Slide, name: 'CustomSlide', @@ -307,7 +321,10 @@ describe('Carousel', () => { }); expect(wrapper.vm.tagName).toBe('CustomSlide'); expect(wrapper.vm.slideCount).toBe(2); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); it('should set carousel height to slide height', done => { @@ -329,7 +346,7 @@ describe('Carousel', () => { wrapper.vm.$nextTick(() => { wrapper.vm.computeCarouselHeight(); expect(wrapper.vm.currentHeight).toBe('200px'); - utils.expectToMatchSnapshot(wrapper.vm); + expect(wrapper).toMatchSnapshot(); done(); }); }); diff --git a/tests/client/components/navigation.spec.js b/tests/client/components/navigation.spec.js index 0b6f29bc4..4cc86123e 100644 --- a/tests/client/components/navigation.spec.js +++ b/tests/client/components/navigation.spec.js @@ -1,5 +1,4 @@ import { mount } from '@vue/test-utils'; -const utils = require('../utils'); const Carousel = require('../../../src/Carousel.vue'); const Slide = require('../../../src/Slide.vue'); @@ -23,29 +22,38 @@ describe('Navigation', () => { $navigation = wrapper.find('.navigation'); }); - it('should mount successfully', () => { + it('should mount successfully', done => { expect($navigation).toBeDefined(); - return utils.expectToMatchSnapshot(vm); + vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); - it('should render a next button', () => { + it('should render a next button', done => { expect(wrapper.find('.VueCarousel-navigation-next')).toBeDefined(); - return utils.expectToMatchSnapshot(vm); + vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); - it('should render a prev button', () => { + it('should render a prev button', done => { expect(wrapper.find('.VueCarousel-navigation-prev')).toBeDefined(); - return utils.expectToMatchSnapshot(vm); + vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); it('should trigger page advance when next is clicked', done => { vm.$nextTick(() => { expect(vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(vm); + expect(wrapper).toMatchSnapshot(); done(); }); @@ -58,7 +66,7 @@ describe('Navigation', () => { vm.$nextTick(() => { expect(vm.currentPage).toBe(1); - utils.expectToMatchSnapshot(vm); + expect(wrapper).toMatchSnapshot(); done(); }); diff --git a/tests/client/components/slide.spec.js b/tests/client/components/slide.spec.js index 83da23f16..75104b522 100644 --- a/tests/client/components/slide.spec.js +++ b/tests/client/components/slide.spec.js @@ -1,11 +1,10 @@ import { mount } from '@vue/test-utils'; -const utils = require('../utils'); const Carousel = require('../../../src/Carousel.vue'); const Slide = require('../../../src/Slide.vue'); describe('Slide', () => { - it('should mount successfully', () => { + it('should mount successfully', done => { const wrapper = mount(Carousel, { slots: { default: [Slide] @@ -13,6 +12,9 @@ describe('Slide', () => { }); expect(wrapper.vm.$children[0]._isMounted).toBeTruthy(); - return utils.expectToMatchSnapshot(wrapper.vm); + wrapper.vm.$nextTick(() => { + expect(wrapper).toMatchSnapshot(); + done(); + }); }); }); diff --git a/tests/client/utils.js b/tests/client/utils.js deleted file mode 100644 index 87a961c89..000000000 --- a/tests/client/utils.js +++ /dev/null @@ -1,34 +0,0 @@ -const Vue = require('vue'); -const Html2jade = require('html2jade'); - -/** convert html to pug as a Promise */ -function html2pug(html) { - return new Promise((resolve, reject) => { - Html2jade.convertHtml(html, {bodyless: true}, (err, jade) => { - if (err) { - reject(err) - } else { - resolve(jade) - } - }) - }) -} - -/** call vm.nextTick() as a Promise */ -function nextTick(vm) { - return new Promise((resolve, reject) => { - Vue.nextTick(() => resolve()) - }) -} - -/** call vm.nextTick() and check the snapshot as a Promise */ -function expectToMatchSnapshot(vm, element) { - return new Promise((resolve, reject) => { - nextTick(vm).then(() => html2pug((element || vm.$el).innerHTML)).then((jade) => { - expect(jade).toMatchSnapshot() - resolve() - }).catch((err)=>(reject(err))) - }) -} - -exports.expectToMatchSnapshot = expectToMatchSnapshot; diff --git a/yarn.lock b/yarn.lock index f2beea753..894b35cfb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -570,6 +570,16 @@ dependencies: execa "^0.2.2" +"@types/node@^10.11.7": + version "10.12.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.12.tgz#e15a9d034d9210f00320ef718a50c4a799417c47" + integrity sha512-Pr+6JRiKkfsFvmU/LK68oBRCQeEg36TyAbPhc2xpez24OOZZCuoIhWGTd39VZy6nGafSbxzGouFPTFD/rR1A0A== + +"@types/semver@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" + integrity sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ== + "@vue/component-compiler-utils@^2.0.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.2.0.tgz#bbbb7ed38a9a8a7c93abe7ef2e54a90a04b631b4" @@ -2280,11 +2290,11 @@ combined-stream@1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@*, commander@2.17.x, commander@^2.9.0: +commander@2.17.x, commander@^2.9.0: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" -commander@^2.14.1: +commander@^2.14.1, commander@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== @@ -2326,6 +2336,15 @@ concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + config-chain@~1.1.5: version "1.1.11" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" @@ -2645,7 +2664,7 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.0: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" @@ -2655,12 +2674,6 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" -cssstyle@~0.2.9: - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - dependencies: - cssom "0.3.x" - cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -2906,7 +2919,7 @@ domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" -domelementtype@1, domelementtype@^1.3.0: +domelementtype@1: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -2926,12 +2939,6 @@ domhandler@2.1: dependencies: domelementtype "1" -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - dependencies: - domelementtype "1" - domutils@1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" @@ -2945,13 +2952,6 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - dependencies: - dom-serializer "0" - domelementtype "1" - dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" @@ -2996,6 +2996,18 @@ editorconfig@^0.13.2: semver "^5.1.0" sigmund "^1.0.1" +editorconfig@^0.15.0: + version "0.15.2" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.2.tgz#047be983abb9ab3c2eefe5199cb2b7c5689f0702" + integrity sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ== + dependencies: + "@types/node" "^10.11.7" + "@types/semver" "^5.5.0" + commander "^2.19.0" + lru-cache "^4.1.3" + semver "^5.6.0" + sigmund "^1.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3055,7 +3067,7 @@ enhanced-resolve@~0.9.0: memory-fs "^0.2.0" tapable "^0.1.8" -entities@^1.1.1, entities@~1.1.1: +entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -4198,10 +4210,6 @@ he@1.1.x, he@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" -he@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/he/-/he-0.4.1.tgz#c86667614d2dd71bc737a197c760fb2eec8a1921" - highlight.js@^9.10.0, highlight.js@^9.7.0: version "9.12.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" @@ -4284,25 +4292,6 @@ html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" -html2jade@^0.8.6: - version "0.8.6" - resolved "https://registry.yarnpkg.com/html2jade/-/html2jade-0.8.6.tgz#2b3774189d395f77397888e91c8c61ec46e4248b" - dependencies: - commander "*" - he "^0.4.1" - jsdom-little "^0.10.5" - -"htmlparser2@>= 3.1.5 <4": - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - htmlparser2@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" @@ -4798,6 +4787,11 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5163,6 +5157,13 @@ jest-runtime@^23.5.0: write-file-atomic "^2.1.0" yargs "^11.0.0" +jest-serializer-vue@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" + integrity sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM= + dependencies: + pretty "2.0.0" + jest-serializer@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" @@ -5229,6 +5230,16 @@ js-base64@^2.1.9: version "2.4.8" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033" +js-beautify@^1.6.12: + version "1.8.8" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.8.8.tgz#1eb175b73a3571a5f1ed8d98e7cf2b05bfa98471" + integrity sha512-qVNq7ZZ7ZbLdzorvSlRDadS0Rh5oyItaE95v6I4wbbuSiijxn7SnnsV6dvKlcXuO2jX7lK8tn9fBulx34K/Ejg== + dependencies: + config-chain "~1.1.5" + editorconfig "^0.15.0" + mkdirp "~0.5.0" + nopt "~4.0.1" + js-beautify@^1.6.3: version "1.7.5" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" @@ -5268,15 +5279,6 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom-little@^0.10.5: - version "0.10.6" - resolved "https://registry.yarnpkg.com/jsdom-little/-/jsdom-little-0.10.6.tgz#9daaa8eed6107fc3aca094f060e920a283f6ae41" - dependencies: - cssom "~0.3.0" - cssstyle "~0.2.9" - htmlparser2 ">= 3.1.5 <4" - nwmatcher "~1.3.2" - jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -5880,6 +5882,14 @@ lru-cache@^4.0.0, lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -6367,7 +6377,7 @@ nopt@3.x, nopt@~3.0.1, nopt@~3.0.6: dependencies: abbrev "1" -nopt@^4.0.1: +nopt@^4.0.1, nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: @@ -6468,10 +6478,6 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nwmatcher@~1.3.2: - version "1.3.9" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" - nwsapi@^2.0.7: version "2.0.8" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.8.tgz#e3603579b7e162b3dbedae4fb24e46f771d8fa24" @@ -7209,6 +7215,15 @@ pretty-format@^23.0.1, pretty-format@^23.5.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" +pretty@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + private@^0.1.6, private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -7896,6 +7911,11 @@ semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"