vue-instantsearch 4.4.2 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +4 -4
  3. package/src/components/Breadcrumb.vue +1 -3
  4. package/src/components/ClearRefinements.vue +1 -3
  5. package/src/components/CurrentRefinements.vue +1 -4
  6. package/src/components/HierarchicalMenu.vue +3 -11
  7. package/src/components/HitsPerPage.vue +2 -3
  8. package/src/components/Menu.vue +1 -3
  9. package/src/components/MenuSelect.vue +1 -3
  10. package/src/components/NumericMenu.vue +3 -8
  11. package/src/components/Pagination.vue +1 -3
  12. package/src/components/RangeInput.vue +3 -11
  13. package/src/components/RatingMenu.vue +2 -3
  14. package/src/components/RefinementList.vue +1 -3
  15. package/src/components/SortBy.vue +2 -3
  16. package/src/components/ToggleRefinement.vue +3 -10
  17. package/src/components/__tests__/Breadcrumb.js +0 -25
  18. package/src/components/__tests__/ClearRefinements.js +0 -23
  19. package/src/components/__tests__/CurrentRefinements.js +0 -17
  20. package/src/components/__tests__/HierarchicalMenu.js +3 -19
  21. package/src/components/__tests__/HitsPerPage.js +0 -26
  22. package/src/components/__tests__/Menu.js +0 -22
  23. package/src/components/__tests__/MenuSelect.js +0 -23
  24. package/src/components/__tests__/NumericMenu.js +3 -25
  25. package/src/components/__tests__/Pagination.js +0 -21
  26. package/src/components/__tests__/RangeInput.js +1 -34
  27. package/src/components/__tests__/RatingMenu.js +0 -23
  28. package/src/components/__tests__/RefinementList.js +0 -23
  29. package/src/components/__tests__/SortBy.js +1 -23
  30. package/src/components/__tests__/ToggleRefinement.js +4 -33
  31. package/src/mixins/__mocks__/panel.js +1 -5
  32. package/src/mixins/__tests__/panel.test.js +18 -40
  33. package/src/mixins/panel.js +3 -1
  34. package/src/util/createServerRootMixin.js +10 -1
  35. package/vue2/cjs/index.js +1 -1
  36. package/vue2/cjs/index.js.map +1 -1
  37. package/vue2/es/package.json.js +1 -1
  38. package/vue2/es/src/components/Breadcrumb.vue.js +1 -1
  39. package/vue2/es/src/components/Breadcrumb.vue.js.map +1 -1
  40. package/vue2/es/src/components/ClearRefinements.vue.js +1 -1
  41. package/vue2/es/src/components/ClearRefinements.vue.js.map +1 -1
  42. package/vue2/es/src/components/CurrentRefinements.vue.js +1 -1
  43. package/vue2/es/src/components/CurrentRefinements.vue.js.map +1 -1
  44. package/vue2/es/src/components/HierarchicalMenu.vue.js +1 -1
  45. package/vue2/es/src/components/HierarchicalMenu.vue.js.map +1 -1
  46. package/vue2/es/src/components/HitsPerPage.vue.js +1 -1
  47. package/vue2/es/src/components/HitsPerPage.vue.js.map +1 -1
  48. package/vue2/es/src/components/Menu.vue.js +1 -1
  49. package/vue2/es/src/components/Menu.vue.js.map +1 -1
  50. package/vue2/es/src/components/MenuSelect.vue.js +1 -1
  51. package/vue2/es/src/components/MenuSelect.vue.js.map +1 -1
  52. package/vue2/es/src/components/NumericMenu.vue.js +1 -1
  53. package/vue2/es/src/components/NumericMenu.vue.js.map +1 -1
  54. package/vue2/es/src/components/Pagination.vue.js +1 -1
  55. package/vue2/es/src/components/Pagination.vue.js.map +1 -1
  56. package/vue2/es/src/components/RangeInput.vue.js +1 -1
  57. package/vue2/es/src/components/RangeInput.vue.js.map +1 -1
  58. package/vue2/es/src/components/RatingMenu.vue.js +1 -1
  59. package/vue2/es/src/components/RatingMenu.vue.js.map +1 -1
  60. package/vue2/es/src/components/RefinementList.vue.js +1 -1
  61. package/vue2/es/src/components/RefinementList.vue.js.map +1 -1
  62. package/vue2/es/src/components/SortBy.vue.js +1 -1
  63. package/vue2/es/src/components/SortBy.vue.js.map +1 -1
  64. package/vue2/es/src/components/ToggleRefinement.vue.js +1 -1
  65. package/vue2/es/src/components/ToggleRefinement.vue.js.map +1 -1
  66. package/vue2/es/src/mixins/panel.js +1 -1
  67. package/vue2/es/src/mixins/panel.js.map +1 -1
  68. package/vue2/es/src/util/createServerRootMixin.js +1 -1
  69. package/vue2/es/src/util/createServerRootMixin.js.map +1 -1
  70. package/vue2/umd/index.js +1 -1
  71. package/vue2/umd/index.js.map +1 -1
  72. package/vue3/cjs/index.js +1 -1
  73. package/vue3/cjs/index.js.map +1 -1
  74. package/vue3/es/package.json.js +1 -1
  75. package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js +1 -1
  76. package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js.map +1 -1
  77. package/vue3/es/src/components/Breadcrumb.vue_vue&type=template&id=6f46de9a&lang.js.map +1 -1
  78. package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js +1 -1
  79. package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js.map +1 -1
  80. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=410a3aaa&lang.js.map +1 -1
  81. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js +1 -1
  82. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js.map +1 -1
  83. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=template&id=4f1917ff&lang.js.map +1 -1
  84. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js +1 -1
  85. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js.map +1 -1
  86. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js +1 -1
  87. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js.map +1 -1
  88. package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js +1 -1
  89. package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js.map +1 -1
  90. package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js +1 -1
  91. package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js.map +1 -1
  92. package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js +1 -1
  93. package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js.map +1 -1
  94. package/vue3/es/src/components/Menu.vue_vue&type=template&id=9bcc0be2&lang.js.map +1 -1
  95. package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js +1 -1
  96. package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js.map +1 -1
  97. package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=694477eb&lang.js.map +1 -1
  98. package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js +1 -1
  99. package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js.map +1 -1
  100. package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js +1 -1
  101. package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js.map +1 -1
  102. package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js +1 -1
  103. package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js.map +1 -1
  104. package/vue3/es/src/components/Pagination.vue_vue&type=template&id=849a166c&lang.js.map +1 -1
  105. package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js +1 -1
  106. package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js.map +1 -1
  107. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js +1 -1
  108. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js.map +1 -1
  109. package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js +1 -1
  110. package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js.map +1 -1
  111. package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js +1 -1
  112. package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js.map +1 -1
  113. package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js +1 -1
  114. package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js.map +1 -1
  115. package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=28927239&lang.js.map +1 -1
  116. package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js +1 -1
  117. package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js.map +1 -1
  118. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js +1 -1
  119. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js.map +1 -1
  120. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js +1 -1
  121. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js.map +1 -1
  122. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js +1 -1
  123. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js.map +1 -1
  124. package/vue3/es/src/mixins/panel.js +1 -1
  125. package/vue3/es/src/mixins/panel.js.map +1 -1
  126. package/vue3/es/src/util/createServerRootMixin.js +1 -1
  127. package/vue3/es/src/util/createServerRootMixin.js.map +1 -1
  128. package/vue3/umd/index.js +1 -1
  129. package/vue3/umd/index.js.map +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [4.5.0](https://github.com/algolia/vue-instantsearch/compare/v4.4.2...v4.5.0) (2022-09-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **nuxt:** only write $nuxt if it's writable ([#1117](https://github.com/algolia/vue-instantsearch/issues/1117)) ([bdecca9](https://github.com/algolia/vue-instantsearch/commit/bdecca9334322e9405ca21e6c6d51735d3ec042f)), closes [/github.com/algolia/vue-instantsearch/commit/acda29326475bd1b73f12b058a0c02df00b8b239#commitcomment-67430759](https://github.com//github.com/algolia/vue-instantsearch/commit/acda29326475bd1b73f12b058a0c02df00b8b239/issues/commitcomment-67430759)
7
+
8
+
9
+ ### Features
10
+
11
+ * **can-refine:** provide `canRefine` for multiple widget slots ([#1141](https://github.com/algolia/vue-instantsearch/issues/1141)) ([424316d](https://github.com/algolia/vue-instantsearch/commit/424316d8c6e23d4573c0d6a63c56ef919da864e1))
12
+
13
+
14
+
1
15
  ## [4.4.2](https://github.com/algolia/vue-instantsearch/compare/v4.4.1...v4.4.2) (2022-07-25)
2
16
 
3
17
 
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "autocomplete"
17
17
  ],
18
18
  "license": "MIT",
19
- "version": "4.4.2",
19
+ "version": "4.5.0",
20
20
  "files": [
21
21
  "vue2",
22
22
  "vue3",
@@ -46,7 +46,7 @@
46
46
  "release": "shipjs prepare"
47
47
  },
48
48
  "dependencies": {
49
- "instantsearch.js": "^4.43.0",
49
+ "instantsearch.js": "^4.45.0",
50
50
  "mitt": "^2.1.0"
51
51
  },
52
52
  "peerDependencies": {
@@ -133,11 +133,11 @@
133
133
  "bundlesize": [
134
134
  {
135
135
  "path": "./vue2/umd/index.js",
136
- "maxSize": "56.50 kB"
136
+ "maxSize": "56.75 kB"
137
137
  },
138
138
  {
139
139
  "path": "./vue3/umd/index.js",
140
- "maxSize": "57.75 kB"
140
+ "maxSize": "58.00 kB"
141
141
  },
142
142
  {
143
143
  "path": "./vue2/cjs/index.js",
@@ -64,9 +64,7 @@ export default {
64
64
  $$widgetType: 'ais.breadcrumb',
65
65
  }
66
66
  ),
67
- createPanelConsumerMixin({
68
- mapStateToCanRefine: state => Boolean(state.canRefine),
69
- }),
67
+ createPanelConsumerMixin(),
70
68
  createSuitMixin({ name: 'Breadcrumb' }),
71
69
  ],
72
70
  props: {
@@ -37,9 +37,7 @@ export default {
37
37
  $$widgetType: 'ais.clearRefinements',
38
38
  }
39
39
  ),
40
- createPanelConsumerMixin({
41
- mapStateToCanRefine: state => Boolean(state.hasRefinements),
42
- }),
40
+ createPanelConsumerMixin(),
43
41
  createSuitMixin({ name: 'ClearRefinements' }),
44
42
  ],
45
43
  props: {
@@ -71,10 +71,7 @@ export default {
71
71
  $$widgetType: 'ais.currentRefinements',
72
72
  }
73
73
  ),
74
- createPanelConsumerMixin({
75
- mapStateToCanRefine: state =>
76
- Boolean(state.items) && state.items.length > 0,
77
- }),
74
+ createPanelConsumerMixin(),
78
75
  ],
79
76
  props: {
80
77
  includedAttributes: {
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="state"
4
- :class="[suit(), !canRefine && suit('', 'noRefinement')]"
4
+ :class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
5
5
  >
6
6
  <slot
7
7
  :items="state.items"
8
- :can-refine="canRefine"
8
+ :can-refine="state.canRefine"
9
9
  :can-toggle-show-more="state.canToggleShowMore"
10
10
  :is-showing-more="state.isShowingMore"
11
11
  :refine="state.refine"
@@ -46,9 +46,6 @@ import { createPanelConsumerMixin } from '../mixins/panel';
46
46
  import HierarchicalMenuList from './HierarchicalMenuList.vue';
47
47
  import { createSuitMixin } from '../mixins/suit';
48
48
 
49
- const mapStateToCanRefine = state =>
50
- Boolean(state.items) && state.items.length > 0;
51
-
52
49
  export default {
53
50
  name: 'AisHierarchicalMenu',
54
51
  mixins: [
@@ -61,9 +58,7 @@ export default {
61
58
  $$widgetType: 'ais.hierarchicalMenu',
62
59
  }
63
60
  ),
64
- createPanelConsumerMixin({
65
- mapStateToCanRefine,
66
- }),
61
+ createPanelConsumerMixin(),
67
62
  ],
68
63
  components: {
69
64
  HierarchicalMenuList,
@@ -120,9 +115,6 @@ export default {
120
115
  transformItems: this.transformItems,
121
116
  };
122
117
  },
123
- canRefine() {
124
- return mapStateToCanRefine(this.state);
125
- },
126
118
  },
127
119
  };
128
120
  </script>
@@ -7,6 +7,7 @@
7
7
  :items="state.items"
8
8
  :refine="state.refine"
9
9
  :hasNoResults="state.hasNoResults"
10
+ :canRefine="state.canRefine"
10
11
  >
11
12
  <select
12
13
  :class="suit('select')"
@@ -42,9 +43,7 @@ export default {
42
43
  $$widgetType: 'ais.hitsPerPage',
43
44
  }
44
45
  ),
45
- createPanelConsumerMixin({
46
- mapStateToCanRefine: state => state.hasNoResults === false,
47
- }),
46
+ createPanelConsumerMixin(),
48
47
  ],
49
48
  props: {
50
49
  items: {
@@ -61,9 +61,7 @@ export default {
61
61
  $$widgetType: 'ais.menu',
62
62
  }
63
63
  ),
64
- createPanelConsumerMixin({
65
- mapStateToCanRefine: state => Boolean(state.canRefine),
66
- }),
64
+ createPanelConsumerMixin(),
67
65
  ],
68
66
  props: {
69
67
  attribute: {
@@ -53,9 +53,7 @@ export default {
53
53
  $$widgetType: 'ais.menuSelect',
54
54
  }
55
55
  ),
56
- createPanelConsumerMixin({
57
- mapStateToCanRefine: state => Boolean(state.canRefine),
58
- }),
56
+ createPanelConsumerMixin(),
59
57
  ],
60
58
  props: {
61
59
  attribute: {
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="state"
4
- :class="[suit(), !canRefine && suit('', 'noRefinement')]"
4
+ :class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
5
5
  >
6
6
  <slot
7
7
  :items="state.items"
8
- :can-refine="canRefine"
8
+ :can-refine="state.canRefine"
9
9
  :refine="state.refine"
10
10
  :createURL="state.createURL"
11
11
  :send-event="state.sendEvent"
@@ -51,9 +51,7 @@ export default {
51
51
  }
52
52
  ),
53
53
  createSuitMixin({ name: 'NumericMenu' }),
54
- createPanelConsumerMixin({
55
- mapStateToCanRefine: state => state.hasNoResults === false,
56
- }),
54
+ createPanelConsumerMixin(),
57
55
  ],
58
56
  props: {
59
57
  attribute: {
@@ -77,9 +75,6 @@ export default {
77
75
  items: this.items,
78
76
  };
79
77
  },
80
- canRefine() {
81
- return !this.state.hasNoResults;
82
- },
83
78
  },
84
79
  };
85
80
  </script>
@@ -183,9 +183,7 @@ export default {
183
183
  $$widgetType: 'ais.pagination',
184
184
  }
185
185
  ),
186
- createPanelConsumerMixin({
187
- mapStateToCanRefine: state => state.nbPages > 1,
188
- }),
186
+ createPanelConsumerMixin(),
189
187
  ],
190
188
  props: {
191
189
  padding: {
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="state"
4
- :class="[suit(), !canRefine && suit('', 'noRefinement')]"
4
+ :class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
5
5
  >
6
6
  <slot
7
7
  :current-refinement="values"
8
8
  :refine="refine"
9
- :can-refine="canRefine"
9
+ :can-refine="state.canRefine"
10
10
  :range="state.range"
11
11
  :send-event="state.sendEvent"
12
12
  >
@@ -60,9 +60,6 @@ import { createWidgetMixin } from '../mixins/widget';
60
60
  import { createPanelConsumerMixin } from '../mixins/panel';
61
61
  import { createSuitMixin } from '../mixins/suit';
62
62
 
63
- const mapStateToCanRefine = state =>
64
- state && Boolean(state.range) && state.range.min !== state.range.max;
65
-
66
63
  export default {
67
64
  name: 'AisRangeInput',
68
65
  mixins: [
@@ -75,9 +72,7 @@ export default {
75
72
  $$widgetType: 'ais.rangeInput',
76
73
  }
77
74
  ),
78
- createPanelConsumerMixin({
79
- mapStateToCanRefine,
80
- }),
75
+ createPanelConsumerMixin(),
81
76
  ],
82
77
  props: {
83
78
  attribute: {
@@ -119,9 +114,6 @@ export default {
119
114
  precision: this.precision,
120
115
  };
121
116
  },
122
- canRefine() {
123
- return mapStateToCanRefine(this.state);
124
- },
125
117
  step() {
126
118
  return 1 / Math.pow(10, this.precision);
127
119
  },
@@ -8,6 +8,7 @@
8
8
  :refine="state.refine"
9
9
  :createURL="state.createURL"
10
10
  :send-event="state.sendEvent"
11
+ :can-refine="state.canRefine"
11
12
  >
12
13
  <svg
13
14
  xmlns="http://www.w3.org/2000/svg"
@@ -95,9 +96,7 @@ export default {
95
96
  $$widgetType: 'ais.ratingMenu',
96
97
  }
97
98
  ),
98
- createPanelConsumerMixin({
99
- mapStateToCanRefine: state => state.hasNoResults === false,
100
- }),
99
+ createPanelConsumerMixin(),
101
100
  ],
102
101
  props: {
103
102
  attribute: {
@@ -118,9 +118,7 @@ export default {
118
118
  $$widgetType: 'ais.refinementList',
119
119
  }
120
120
  ),
121
- createPanelConsumerMixin({
122
- mapStateToCanRefine: state => Boolean(state.canRefine),
123
- }),
121
+ createPanelConsumerMixin(),
124
122
  ],
125
123
  props: {
126
124
  attribute: {
@@ -8,6 +8,7 @@
8
8
  :has-no-results="state.hasNoResults"
9
9
  :refine="state.refine"
10
10
  :current-refinement="state.currentRefinement"
11
+ :can-refine="state.canRefine"
11
12
  >
12
13
  <select
13
14
  :class="suit('select')"
@@ -42,9 +43,7 @@ export default {
42
43
  }
43
44
  ),
44
45
 
45
- createPanelConsumerMixin({
46
- mapStateToCanRefine: state => state.hasNoResults === false,
47
- }),
46
+ createPanelConsumerMixin(),
48
47
  ],
49
48
  props: {
50
49
  items: {
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="state"
4
- :class="[suit(), !canRefine && suit('', 'noRefinement')]"
4
+ :class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
5
5
  >
6
6
  <slot
7
7
  :value="state.value"
8
- :can-refine="canRefine"
8
+ :can-refine="state.canRefine"
9
9
  :refine="state.refine"
10
10
  :createURL="state.createURL"
11
11
  :send-event="state.sendEvent"
@@ -35,8 +35,6 @@ import { createWidgetMixin } from '../mixins/widget';
35
35
  import { createPanelConsumerMixin } from '../mixins/panel';
36
36
  import { createSuitMixin } from '../mixins/suit';
37
37
 
38
- const mapStateToCanRefine = state => Boolean(state.value && state.value.count);
39
-
40
38
  export default {
41
39
  name: 'AisToggleRefinement',
42
40
  mixins: [
@@ -49,9 +47,7 @@ export default {
49
47
  $$widgetType: 'ais.toggleRefinement',
50
48
  }
51
49
  ),
52
- createPanelConsumerMixin({
53
- mapStateToCanRefine,
54
- }),
50
+ createPanelConsumerMixin(),
55
51
  ],
56
52
  props: {
57
53
  attribute: {
@@ -82,9 +78,6 @@ export default {
82
78
  off: this.off,
83
79
  };
84
80
  },
85
- canRefine() {
86
- return mapStateToCanRefine(this.state);
87
- },
88
81
  },
89
82
  };
90
83
  </script>
@@ -182,31 +182,6 @@ describe('default render', () => {
182
182
  });
183
183
  });
184
184
 
185
- describe('panel', () => {
186
- it('calls the Panel mixin with `canRefine`', async () => {
187
- __setState({ ...defaultState });
188
-
189
- const wrapper = mount(Breadcrumb, {
190
- propsData: defaultProps,
191
- });
192
-
193
- const mapStateToCanRefine = () =>
194
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
195
-
196
- expect(mapStateToCanRefine()).toBe(true);
197
-
198
- await wrapper.setData({
199
- state: {
200
- canRefine: false,
201
- },
202
- });
203
-
204
- expect(mapStateToCanRefine()).toBe(false);
205
-
206
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
207
- });
208
- });
209
-
210
185
  describe('custom default render', () => {
211
186
  const defaultSlot = `
212
187
  <template v-slot="{ items, canRefine, refine, createURL }">
@@ -187,26 +187,3 @@ describe('custom resetLabel render', () => {
187
187
  expect(wrapper.html()).toMatchSnapshot();
188
188
  });
189
189
  });
190
-
191
- it('calls the Panel mixin with `hasRefinement`', async () => {
192
- __setState({
193
- hasRefinements: true,
194
- });
195
-
196
- const wrapper = mount(ClearRefinements);
197
-
198
- const mapStateToCanRefine = () =>
199
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
200
-
201
- expect(mapStateToCanRefine()).toBe(true);
202
-
203
- await wrapper.setData({
204
- state: {
205
- hasRefinements: false,
206
- },
207
- });
208
-
209
- expect(mapStateToCanRefine()).toBe(false);
210
-
211
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
212
- });
@@ -167,23 +167,6 @@ describe.each([
167
167
  });
168
168
  });
169
169
 
170
- it('calls the Panel mixin with `canRefine`', async () => {
171
- __setState({ items: [{}] });
172
-
173
- const wrapper = mount(CurrentRefinements);
174
-
175
- const mapStateToCanRefine = () =>
176
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
177
-
178
- expect(mapStateToCanRefine()).toBe(true);
179
-
180
- await wrapper.setData({ state: { items: [] } });
181
-
182
- expect(mapStateToCanRefine()).toBe(false);
183
-
184
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
185
- });
186
-
187
170
  it('calls `refine` with a refinement', async () => {
188
171
  const spies = [jest.fn(), jest.fn()];
189
172
 
@@ -116,6 +116,7 @@ const defaultState = {
116
116
  createURL: () => {},
117
117
  isShowingMore: false,
118
118
  canToggleShowMore: true,
119
+ canRefine: true,
119
120
  toggleShowMore: () => {},
120
121
  sendEvent: () => {},
121
122
  };
@@ -266,6 +267,7 @@ describe('default render', () => {
266
267
  __setState({
267
268
  ...defaultState,
268
269
  items: [],
270
+ canRefine: false,
269
271
  });
270
272
 
271
273
  const wrapper = mount(HierarchicalMenu, {
@@ -466,25 +468,6 @@ describe('default render', () => {
466
468
  });
467
469
  });
468
470
 
469
- it('calls the Panel mixin with `items.length`', async () => {
470
- __setState({ ...defaultState });
471
-
472
- const wrapper = mount(HierarchicalMenu, {
473
- propsData: defaultProps,
474
- });
475
-
476
- const mapStateToCanRefine = () =>
477
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
478
-
479
- expect(mapStateToCanRefine()).toBe(true);
480
-
481
- await wrapper.setData({ state: { items: [] } });
482
-
483
- expect(mapStateToCanRefine()).toBe(false);
484
-
485
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
486
- });
487
-
488
471
  it('exposes send-event method for insights middleware', async () => {
489
472
  const sendEvent = jest.fn();
490
473
  __setState({
@@ -574,6 +557,7 @@ describe('custom default render', () => {
574
557
  __setState({
575
558
  ...defaultState,
576
559
  items: [],
560
+ canRefine: false,
577
561
  });
578
562
 
579
563
  const wrapper = mount({
@@ -76,29 +76,3 @@ it('calls `refine` with the `value` on `change`', async () => {
76
76
 
77
77
  expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith(20);
78
78
  });
79
-
80
- it('calls the Panel mixin with `hasNoResults`', async () => {
81
- __setState({
82
- ...defaultState,
83
- hasNoResults: false,
84
- });
85
-
86
- const wrapper = mount(HitsPerPage, {
87
- propsData: defaultProps,
88
- });
89
-
90
- const mapStateToCanRefine = () =>
91
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
92
-
93
- expect(mapStateToCanRefine()).toBe(true);
94
-
95
- await wrapper.setData({
96
- state: {
97
- hasNoResults: true,
98
- },
99
- });
100
-
101
- expect(mapStateToCanRefine()).toBe(false);
102
-
103
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
104
- });
@@ -325,28 +325,6 @@ describe('default render', () => {
325
325
  });
326
326
  });
327
327
 
328
- it('calls the Panel mixin with `canRefine`', async () => {
329
- __setState({ ...defaultState });
330
-
331
- const wrapper = mount(Menu, {
332
- propsData: defaultProps,
333
- });
334
-
335
- const mapStateToCanRefine = () =>
336
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
337
-
338
- expect(mapStateToCanRefine()).toBe(true);
339
-
340
- await wrapper.setData({
341
- state: {
342
- canRefine: false,
343
- },
344
- });
345
- expect(mapStateToCanRefine()).toBe(false);
346
-
347
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
348
- });
349
-
350
328
  it('exposes send-event method for insights middleware', async () => {
351
329
  const sendEvent = jest.fn();
352
330
  __setState({
@@ -201,29 +201,6 @@ describe('default render', () => {
201
201
  });
202
202
  });
203
203
 
204
- it('calls the Panel mixin with `canRefine`', async () => {
205
- __setState({ ...defaultState });
206
-
207
- const wrapper = mount(MenuSelect, {
208
- propsData: defaultProps,
209
- });
210
-
211
- const mapStateToCanRefine = () =>
212
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
213
-
214
- expect(mapStateToCanRefine()).toBe(true);
215
-
216
- await wrapper.setData({
217
- state: {
218
- canRefine: false,
219
- },
220
- });
221
-
222
- expect(mapStateToCanRefine()).toBe(false);
223
-
224
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
225
- });
226
-
227
204
  it('exposes send-event method for insights middleware', async () => {
228
205
  const sendEvent = jest.fn();
229
206
  __setState({
@@ -41,6 +41,7 @@ const moreThan500 = {
41
41
  const defaultState = {
42
42
  items: [all, lessThan10, from10to100, from100to500, moreThan500],
43
43
  hasNoResults: false,
44
+ canRefine: true,
44
45
  createURL: () => {},
45
46
  refine: () => {},
46
47
  };
@@ -125,7 +126,7 @@ describe('default render', () => {
125
126
  it('renders correctly without refinement', () => {
126
127
  __setState({
127
128
  ...defaultState,
128
- hasNoResults: true,
129
+ canRefine: false,
129
130
  });
130
131
 
131
132
  const props = {
@@ -190,29 +191,6 @@ describe('default render', () => {
190
191
  });
191
192
  });
192
193
 
193
- it('calls the Panel mixin with `hasNoResults`', async () => {
194
- __setState({ ...defaultState });
195
-
196
- const wrapper = mount(NumericMenu, {
197
- propsData: defaultProps,
198
- });
199
-
200
- const mapStateToCanRefine = () =>
201
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
202
-
203
- expect(mapStateToCanRefine()).toBe(true);
204
-
205
- await wrapper.setData({
206
- state: {
207
- hasNoResults: true,
208
- },
209
- });
210
-
211
- expect(mapStateToCanRefine()).toBe(false);
212
-
213
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
214
- });
215
-
216
194
  it('exposes send-event method for insights middleware', async () => {
217
195
  const sendEvent = jest.fn();
218
196
  __setState({
@@ -281,7 +259,7 @@ describe('custom default render', () => {
281
259
  it('renders correctly without refinement', () => {
282
260
  __setState({
283
261
  ...defaultState,
284
- hasNoResults: true,
262
+ canRefine: false,
285
263
  });
286
264
 
287
265
  const wrapper = mount({
@@ -143,27 +143,6 @@ it('Moves to the previous page on that button', async () => {
143
143
  );
144
144
  });
145
145
 
146
- it('calls the Panel mixin with `nbPages`', async () => {
147
- __setState({ ...defaultState });
148
-
149
- const wrapper = mount(Pagination);
150
-
151
- const mapStateToCanRefine = () =>
152
- wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
153
-
154
- expect(mapStateToCanRefine()).toBe(true);
155
-
156
- await wrapper.setData({
157
- state: {
158
- nbPages: 1,
159
- },
160
- });
161
-
162
- expect(mapStateToCanRefine()).toBe(false);
163
-
164
- expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
165
- });
166
-
167
146
  it('implements showFirst', async () => {
168
147
  __setState({ ...defaultState });
169
148