richie-education 2.34.1-dev2 → 2.34.1-dev4

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.
@@ -204,12 +204,10 @@ describe('<AbstractContractFrame />', () => {
204
204
  await user.click(button);
205
205
 
206
206
  // The dummy interface should be loading
207
- screen.getByRole('heading', { name: 'Signing the contract ...' });
207
+ await screen.findByRole('heading', { name: 'Signing the contract ...' });
208
208
 
209
209
  // Then the signature check polling should be started
210
- await waitFor(() => {
211
- expect(screen.getByRole('heading', { name: 'Verifying signature ...' })).toBeInTheDocument();
212
- });
210
+ await screen.findByRole('heading', { name: 'Verifying signature ...' });
213
211
  expect(
214
212
  screen.getByText(
215
213
  'We are waiting for the signature to be validated from our signature platform. It can take up to few minutes. Do not close this page.',
@@ -208,8 +208,9 @@ describe('useCreditCards', () => {
208
208
  await act(async () => {
209
209
  responseDeferred.resolve({});
210
210
  });
211
-
212
- expect(result.current.states.updating).toBe(false);
211
+ await waitFor(() => {
212
+ expect(result.current.states.updating).toBe(false);
213
+ });
213
214
  expect(result.current.states.isPending).toBe(false);
214
215
  expect(result.current.states.error).toBe(undefined);
215
216
  });
@@ -181,7 +181,7 @@ describe('<DahsboardEditCreditCard/>', () => {
181
181
  await screen.findByText('Credit cards');
182
182
 
183
183
  // The title is correctly updated.
184
- screen.getByRole('heading', {
184
+ await screen.findByRole('heading', {
185
185
  level: 6,
186
186
  name: creditCardUpdated.title,
187
187
  });
@@ -139,11 +139,12 @@ const EnrollableCourseRunList = ({ courseRuns, order }: Props) => {
139
139
  <ol className="course-runs-list">
140
140
  {Children.toArray(
141
141
  courseRuns.map((courseRun) => (
142
- <li className="course-runs-item form-field">
142
+ <li key={`${order.id}|${courseRun.id}`} className="course-runs-item form-field">
143
143
  <input
144
144
  className="form-field__radio-input"
145
145
  type="radio"
146
146
  id={`${order.id}|${courseRun.id}`}
147
+ data-testid={`radio-input-${order.id}-${courseRun.id}`}
147
148
  name={order.id}
148
149
  disabled={needsSignature}
149
150
  aria-label={intl.formatMessage(messages.ariaSelectCourseRun, {
@@ -166,11 +166,13 @@ describe('CourseProductCourseRuns', () => {
166
166
  );
167
167
 
168
168
  // - A radio input
169
- screen.getByRole('radio', {
170
- name: `Select course run from ${dateFormatter.format(
169
+ const $input = screen.getByTestId(`radio-input-${order.id}-${courseRun.id}`);
170
+ expect($input).toHaveAttribute('type', 'radio');
171
+ expect($input).toHaveAccessibleName(
172
+ `Select course run from ${dateFormatter.format(
171
173
  new Date(courseRun.start),
172
174
  )} to ${dateFormatter.format(new Date(courseRun.end))}.`,
173
- });
175
+ );
174
176
  });
175
177
 
176
178
  // A call to action should be displayed
@@ -215,7 +217,7 @@ describe('CourseProductCourseRuns', () => {
215
217
  });
216
218
 
217
219
  // A spinner should be displayed
218
- screen.getByRole('status', { name: 'Enrolling...' });
220
+ await screen.findByRole('status', { name: 'Enrolling...' });
219
221
 
220
222
  await act(async () => {
221
223
  enrollmentDeferred.resolve(HttpStatusCode.OK);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "richie-education",
3
- "version": "2.34.1-dev2",
3
+ "version": "2.34.1-dev4",
4
4
  "description": "A CMS to build learning portals for Open Education",
5
5
  "main": "sandbox/manage.py",
6
6
  "scripts": {
@@ -38,74 +38,74 @@
38
38
  "not dead"
39
39
  ],
40
40
  "dependencies": {
41
- "@babel/core": "7.26.0",
41
+ "@babel/core": "7.26.9",
42
42
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
43
43
  "@babel/plugin-transform-modules-commonjs": "7.26.3",
44
- "@babel/preset-env": "7.26.0",
44
+ "@babel/preset-env": "7.26.9",
45
45
  "@babel/preset-react": "7.26.3",
46
46
  "@babel/preset-typescript": "7.26.0",
47
- "@faker-js/faker": "9.3.0",
48
- "@formatjs/cli": "6.3.14",
49
- "@formatjs/intl-relativetimeformat": "11.4.8",
50
- "@hookform/resolvers": "3.9.1",
47
+ "@faker-js/faker": "9.5.0",
48
+ "@formatjs/cli": "6.6.1",
49
+ "@formatjs/intl-relativetimeformat": "11.4.10",
50
+ "@hookform/resolvers": "4.1.0",
51
51
  "@lyracom/embedded-form-glue": "1.4.2",
52
52
  "@openfun/cunningham-react": "3.0.0",
53
53
  "@openfun/cunningham-tokens": "2.2.0",
54
- "@sentry/browser": "8.42.0",
55
- "@sentry/types": "8.42.0",
56
- "@storybook/addon-actions": "8.4.7",
57
- "@storybook/addon-essentials": "8.4.7",
58
- "@storybook/addon-interactions": "8.4.7",
59
- "@storybook/addon-links": "8.4.7",
60
- "@storybook/react": "8.4.7",
61
- "@storybook/react-webpack5": "8.4.7",
62
- "@storybook/test": "8.4.7",
63
- "@tanstack/query-core": "5.62.3",
64
- "@tanstack/query-sync-storage-persister": "5.62.3",
65
- "@tanstack/react-query": "5.62.3",
66
- "@tanstack/react-query-devtools": "5.62.3",
67
- "@tanstack/react-query-persist-client": "5.62.3",
54
+ "@sentry/browser": "9.1.0",
55
+ "@sentry/types": "9.1.0",
56
+ "@storybook/addon-actions": "8.5.6",
57
+ "@storybook/addon-essentials": "8.5.6",
58
+ "@storybook/addon-interactions": "8.5.6",
59
+ "@storybook/addon-links": "8.5.6",
60
+ "@storybook/react": "8.5.6",
61
+ "@storybook/react-webpack5": "8.5.6",
62
+ "@storybook/test": "8.5.6",
63
+ "@tanstack/query-core": "5.66.3",
64
+ "@tanstack/query-sync-storage-persister": "5.66.3",
65
+ "@tanstack/react-query": "5.66.3",
66
+ "@tanstack/react-query-devtools": "5.66.3",
67
+ "@tanstack/react-query-persist-client": "5.66.3",
68
68
  "@testing-library/dom": "10.4.0",
69
69
  "@testing-library/jest-dom": "6.6.3",
70
- "@testing-library/react": "16.1.0",
71
- "@testing-library/user-event": "14.5.2",
70
+ "@testing-library/react": "16.2.0",
71
+ "@testing-library/user-event": "14.6.1",
72
72
  "@types/fetch-mock": "7.3.8",
73
- "@types/iframe-resizer": "3.5.13",
73
+ "@types/iframe-resizer": "4.0.0",
74
74
  "@types/jest": "29.5.14",
75
75
  "@types/js-cookie": "3.0.6",
76
76
  "@types/lodash-es": "4.17.12",
77
77
  "@types/node-fetch": "2.6.12",
78
78
  "@types/query-string": "6.3.0",
79
- "@types/react": "19.0.1",
79
+ "@types/react": "19.0.10",
80
80
  "@types/react-autosuggest": "10.1.11",
81
- "@types/react-dom": "19.0.1",
81
+ "@types/react-dom": "19.0.4",
82
82
  "@types/react-modal": "3.16.3",
83
- "@typescript-eslint/eslint-plugin": "8.17.0",
84
- "@typescript-eslint/parser": "8.17.0",
83
+ "@typescript-eslint/eslint-plugin": "8.24.0",
84
+ "@typescript-eslint/parser": "8.24.0",
85
85
  "babel-jest": "29.7.0",
86
86
  "babel-loader": "9.2.1",
87
87
  "babel-plugin-react-intl": "8.2.25",
88
88
  "bootstrap": ">=4.6.0 <5",
89
89
  "classnames": "2.5.1",
90
90
  "cljs-merge": "1.1.1",
91
- "core-js": "3.39.0",
91
+ "core-js": "3.40.0",
92
92
  "downshift": "9.0.8",
93
93
  "eslint": ">=8.57.0 <9",
94
94
  "eslint-config-airbnb": "19.0.4",
95
95
  "eslint-config-airbnb-typescript": "18.0.0",
96
- "eslint-config-prettier": "9.1.0",
97
- "eslint-import-resolver-webpack": "0.13.9",
98
- "eslint-plugin-compat": "6.0.1",
99
- "eslint-plugin-formatjs": "5.2.8",
96
+ "eslint-config-prettier": "10.0.1",
97
+ "eslint-import-resolver-webpack": "0.13.10",
98
+ "eslint-plugin-compat": "6.0.2",
99
+ "eslint-plugin-formatjs": "5.2.14",
100
100
  "eslint-plugin-import": "2.31.0",
101
101
  "eslint-plugin-jsx-a11y": "6.10.2",
102
- "eslint-plugin-prettier": "5.2.1",
103
- "eslint-plugin-react": "7.37.2",
102
+ "eslint-plugin-prettier": "5.2.3",
103
+ "eslint-plugin-react": "7.37.4",
104
104
  "eslint-plugin-react-hooks": "5.1.0",
105
- "eslint-plugin-storybook": "0.11.1",
105
+ "eslint-plugin-storybook": "0.11.3",
106
106
  "fetch-mock": "<10",
107
107
  "file-loader": "6.2.0",
108
- "glob": "11.0.0",
108
+ "glob": "11.0.1",
109
109
  "i18n-iso-countries": "7.13.0",
110
110
  "iframe-resizer": "<5",
111
111
  "intl-pluralrules": "2.0.1",
@@ -114,35 +114,35 @@
114
114
  "js-cookie": "3.0.5",
115
115
  "lodash-es": "4.17.21",
116
116
  "mdn-polyfills": "5.20.0",
117
- "msw": "2.6.8",
117
+ "msw": "2.7.0",
118
118
  "node-fetch": ">2.6.6 <3",
119
- "nodemon": "3.1.7",
120
- "prettier": "3.4.2",
119
+ "nodemon": "3.1.9",
120
+ "prettier": "3.5.1",
121
121
  "query-string": "9.1.1",
122
122
  "react": "19.0.0",
123
123
  "react-autosuggest": "10.1.0",
124
124
  "react-dom": "19.0.0",
125
- "react-hook-form": "7.54.0",
126
- "react-intl": "7.0.4",
127
- "react-modal": "3.16.1",
128
- "react-router": "7.0.2",
129
- "sass": "1.82.0",
125
+ "react-hook-form": "7.54.2",
126
+ "react-intl": "7.1.6",
127
+ "react-modal": "3.16.3",
128
+ "react-router": "7.1.5",
129
+ "sass": "1.85.0",
130
130
  "source-map-loader": "5.0.0",
131
- "storybook": "8.4.7",
131
+ "storybook": "8.5.6",
132
132
  "tsconfig-paths-webpack-plugin": "4.2.0",
133
- "typescript": "5.7.2",
134
- "uuid": "11.0.3",
135
- "webpack": "5.97.1",
136
- "webpack-cli": "5.1.4",
133
+ "typescript": "5.7.3",
134
+ "uuid": "11.0.5",
135
+ "webpack": "5.98.0",
136
+ "webpack-cli": "6.0.1",
137
137
  "whatwg-fetch": "3.6.20",
138
138
  "xhr-mock": "2.5.1",
139
139
  "yargs": "17.7.2",
140
- "yup": "1.5.0"
140
+ "yup": "1.6.1"
141
141
  },
142
142
  "resolutions": {
143
143
  "@testing-library/dom": "10.4.0",
144
- "@types/react": "19.0.1",
145
- "@types/react-dom": "19.0.1",
144
+ "@types/react": "19.0.10",
145
+ "@types/react-dom": "19.0.4",
146
146
  "react": "19.0.0",
147
147
  "react-dom": "19.0.0"
148
148
  },
@@ -154,7 +154,7 @@
154
154
  "yarn": "1.22.22"
155
155
  },
156
156
  "devDependencies": {
157
- "@storybook/addon-mdx-gfm": "8.4.7",
158
- "@storybook/addon-webpack5-compiler-babel": "3.0.3"
157
+ "@storybook/addon-mdx-gfm": "8.5.6",
158
+ "@storybook/addon-webpack5-compiler-babel": "3.0.5"
159
159
  }
160
160
  }
@@ -5,7 +5,8 @@
5
5
  // Draw a background grid in pure CSS
6
6
  @mixin draw-grid($line-color: null, $border-color: null) {
7
7
  @if $line-color {
8
- background: linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
8
+ background:
9
+ linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
9
10
  linear-gradient($line-color $onepixel, transparent $onepixel),
10
11
  linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
11
12
  linear-gradient($line-color $onepixel, transparent $onepixel),