@mvf/external-components 3.31.1-dev.6 → 3.31.1-dev.7
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.
- package/Components/Atoms/FormControl/FormControl.js +1 -3
- package/Components/Atoms/FormControl/FormControl.js.map +1 -1
- package/Components/Atoms/FormControl/makeFormControlStyles.d.ts +1 -3
- package/Components/Atoms/FormControl/makeFormControlStyles.js +2 -1
- package/Components/Atoms/FormControl/makeFormControlStyles.js.map +1 -1
- package/Components/Atoms/Input/IInputProps.d.ts +0 -5
- package/Components/Atoms/Input/Input.js +2 -3
- package/Components/Atoms/Input/Input.js.map +1 -1
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +3 -5
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
- package/Components/Molecules/ScrollContainer/ScrollContainer.js +25 -0
- package/Components/Molecules/ScrollContainer/ScrollContainer.js.map +1 -1
- package/Components/Molecules/index.d.ts +0 -1
- package/Components/Molecules/index.js +1 -3
- package/Components/Molecules/index.js.map +1 -1
- package/Components/index.d.ts +1 -1
- package/Components/index.js +1 -2
- package/Components/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -2
- package/index.js.map +1 -1
- package/package.json +1 -3
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.d.ts +0 -57
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js +0 -3
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.d.ts +0 -33
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js +0 -3
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.d.ts +0 -7
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js +0 -216
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.d.ts +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js +0 -596
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.d.ts +0 -8
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js +0 -17
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.d.ts +0 -22
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js +0 -56
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.d.ts +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js +0 -159
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.d.ts +0 -12
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js +0 -206
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.d.ts +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js +0 -187
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.d.ts +0 -10
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js +0 -229
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.d.ts +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js +0 -281
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.d.ts +0 -11
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js +0 -35
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.d.ts +0 -10
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js +0 -114
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +0 -12
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +0 -36
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +0 -38
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +0 -181
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +0 -21
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +0 -41
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +0 -10
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +0 -138
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.d.ts +0 -12
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js +0 -509
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.d.ts +0 -21
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js +0 -33
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.d.ts +0 -15
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js +0 -130
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.d.ts +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js +0 -157
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.d.ts +0 -21
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js +0 -33
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js.map +0 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.d.ts +0 -10
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.js +0 -21
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.js.map +0 -1
@@ -1,596 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
3
|
-
__assign = Object.assign || function(t) {
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
-
s = arguments[i];
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
-
t[p] = s[p];
|
8
|
-
}
|
9
|
-
return t;
|
10
|
-
};
|
11
|
-
return __assign.apply(this, arguments);
|
12
|
-
};
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
20
|
-
});
|
21
|
-
};
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
26
|
-
function step(op) {
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
31
|
-
switch (op[0]) {
|
32
|
-
case 0: case 1: t = op; break;
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
36
|
-
default:
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
41
|
-
if (t[2]) _.ops.pop();
|
42
|
-
_.trys.pop(); continue;
|
43
|
-
}
|
44
|
-
op = body.call(thisArg, _);
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
47
|
-
}
|
48
|
-
};
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
51
|
-
};
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
53
|
-
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
54
|
-
var react_1 = require("@testing-library/react");
|
55
|
-
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
56
|
-
var renderWithProviders_1 = __importDefault(require("../../../Helpers/React/renderWithProviders"));
|
57
|
-
var PhoneNumberTextField_1 = __importDefault(require("./PhoneNumberTextField"));
|
58
|
-
var countryData_1 = require("./__helpers__/utils/countryData");
|
59
|
-
describe('PhoneNumberTextField', function () {
|
60
|
-
var defaultProps = {
|
61
|
-
label: 'Phone Number',
|
62
|
-
id: 'phone-input',
|
63
|
-
experimentName: 'default',
|
64
|
-
value: '',
|
65
|
-
isAnswered: false,
|
66
|
-
disabled: false,
|
67
|
-
isSafari: false,
|
68
|
-
isAutoFilledActive: false,
|
69
|
-
type: 'tel',
|
70
|
-
onBlur: jest.fn(),
|
71
|
-
onClick: jest.fn(),
|
72
|
-
};
|
73
|
-
beforeEach(function () {
|
74
|
-
jest.clearAllMocks();
|
75
|
-
});
|
76
|
-
describe('Basic Rendering', function () {
|
77
|
-
it('should display PhoneNumberTextField Component with label', function () {
|
78
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
79
|
-
expect(react_1.screen.getByText('Phone Number')).toBeInTheDocument();
|
80
|
-
});
|
81
|
-
it('should render with default country (first in list)', function () {
|
82
|
-
var countries = (0, countryData_1.getCountryData)();
|
83
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
84
|
-
// Should show the first country's flag and example
|
85
|
-
var input = react_1.screen.getByRole('textbox');
|
86
|
-
expect(input).toHaveAttribute('placeholder', countries[0].example);
|
87
|
-
});
|
88
|
-
it('should render with specified initial country', function () {
|
89
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { initialCountry: "GB" })));
|
90
|
-
// Should show UK's example
|
91
|
-
var input = react_1.screen.getByRole('textbox');
|
92
|
-
var ukCountry = (0, countryData_1.getCountryData)().find(function (c) { return c.code === 'GB'; });
|
93
|
-
expect(input).toHaveAttribute('placeholder', ukCountry === null || ukCountry === void 0 ? void 0 : ukCountry.example);
|
94
|
-
});
|
95
|
-
it('should have tel input type by default', function () {
|
96
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
97
|
-
var input = react_1.screen.getByRole('textbox');
|
98
|
-
expect(input).toHaveAttribute('type', 'tel');
|
99
|
-
});
|
100
|
-
it('should accept custom input type', function () {
|
101
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { type: "text" })));
|
102
|
-
var input = react_1.screen.getByRole('textbox');
|
103
|
-
expect(input).toHaveAttribute('type', 'text');
|
104
|
-
});
|
105
|
-
});
|
106
|
-
describe('Phone Number Input and Formatting', function () {
|
107
|
-
it('should format phone number as user types', function () { return __awaiter(void 0, void 0, void 0, function () {
|
108
|
-
var input;
|
109
|
-
return __generator(this, function (_a) {
|
110
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
111
|
-
input = react_1.screen.getByRole('textbox');
|
112
|
-
// Type a US phone number
|
113
|
-
user_event_1.default.type(input, '2023456789');
|
114
|
-
// Should be formatted
|
115
|
-
expect(input).toHaveValue('(202) 345-6789');
|
116
|
-
return [2 /*return*/];
|
117
|
-
});
|
118
|
-
}); });
|
119
|
-
it('should handle international phone number input', function () { return __awaiter(void 0, void 0, void 0, function () {
|
120
|
-
var input;
|
121
|
-
return __generator(this, function (_a) {
|
122
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
123
|
-
input = react_1.screen.getByRole('textbox');
|
124
|
-
// Type an international number
|
125
|
-
user_event_1.default.type(input, '+441212345678');
|
126
|
-
// Should be formatted and country should change
|
127
|
-
expect(input.value).toContain('121 234 5678');
|
128
|
-
return [2 /*return*/];
|
129
|
-
});
|
130
|
-
}); });
|
131
|
-
it('should call phone number change callbacks', function () { return __awaiter(void 0, void 0, void 0, function () {
|
132
|
-
var mockOnPhoneNumberChange, mockOnValidationChange, mockOnFormattedValueChange, mockOnChange, input;
|
133
|
-
return __generator(this, function (_a) {
|
134
|
-
mockOnPhoneNumberChange = jest.fn();
|
135
|
-
mockOnValidationChange = jest.fn();
|
136
|
-
mockOnFormattedValueChange = jest.fn();
|
137
|
-
mockOnChange = jest.fn();
|
138
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { onPhoneNumberChange: mockOnPhoneNumberChange, onValidationChange: mockOnValidationChange, onFormattedValueChange: mockOnFormattedValueChange, onChange: mockOnChange })));
|
139
|
-
input = react_1.screen.getByRole('textbox');
|
140
|
-
user_event_1.default.type(input, '2023456789');
|
141
|
-
expect(mockOnPhoneNumberChange).toHaveBeenCalled();
|
142
|
-
expect(mockOnValidationChange).toHaveBeenCalled();
|
143
|
-
expect(mockOnFormattedValueChange).toHaveBeenCalled();
|
144
|
-
expect(mockOnChange).toHaveBeenCalled();
|
145
|
-
return [2 /*return*/];
|
146
|
-
});
|
147
|
-
}); });
|
148
|
-
it('should validate phone numbers correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
149
|
-
var mockOnValidationChange, input, calls;
|
150
|
-
return __generator(this, function (_a) {
|
151
|
-
switch (_a.label) {
|
152
|
-
case 0:
|
153
|
-
mockOnValidationChange = jest.fn();
|
154
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { onValidationChange: mockOnValidationChange })));
|
155
|
-
input = react_1.screen.getByRole('textbox');
|
156
|
-
// Type a US number
|
157
|
-
user_event_1.default.type(input, '2023456789');
|
158
|
-
// Should call validation callback for each digit
|
159
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
160
|
-
expect(mockOnValidationChange).toHaveBeenCalled();
|
161
|
-
})];
|
162
|
-
case 1:
|
163
|
-
// Should call validation callback for each digit
|
164
|
-
_a.sent();
|
165
|
-
calls = mockOnValidationChange.mock.calls;
|
166
|
-
expect(calls.length).toBeGreaterThan(0);
|
167
|
-
// Check that all calls have the expected structure
|
168
|
-
calls.forEach(function (call) {
|
169
|
-
var callData = call[0];
|
170
|
-
expect(callData).toEqual(expect.objectContaining({
|
171
|
-
id: 'phone-input',
|
172
|
-
isValid: expect.any(Boolean),
|
173
|
-
phoneNumber: expect.any(String),
|
174
|
-
validationResult: expect.any(Object),
|
175
|
-
}));
|
176
|
-
});
|
177
|
-
return [2 /*return*/];
|
178
|
-
}
|
179
|
-
});
|
180
|
-
}); });
|
181
|
-
it('should show validation error for invalid numbers', function () { return __awaiter(void 0, void 0, void 0, function () {
|
182
|
-
var input;
|
183
|
-
return __generator(this, function (_a) {
|
184
|
-
switch (_a.label) {
|
185
|
-
case 0:
|
186
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
187
|
-
input = react_1.screen.getByRole('textbox');
|
188
|
-
// Type incomplete number
|
189
|
-
user_event_1.default.type(input, '555');
|
190
|
-
// Should show error
|
191
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
192
|
-
expect(react_1.screen.getByText('Please enter a valid phone number')).toBeInTheDocument();
|
193
|
-
})];
|
194
|
-
case 1:
|
195
|
-
// Should show error
|
196
|
-
_a.sent();
|
197
|
-
return [2 /*return*/];
|
198
|
-
}
|
199
|
-
});
|
200
|
-
}); });
|
201
|
-
});
|
202
|
-
describe('Country Selection', function () {
|
203
|
-
it('should show country selector when enableCountryChange is true (default)', function () {
|
204
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
205
|
-
var countrySelector = react_1.screen.getByRole('button', {
|
206
|
-
name: /select country/i,
|
207
|
-
});
|
208
|
-
expect(countrySelector).toBeInTheDocument();
|
209
|
-
expect(countrySelector).toHaveStyle('cursor: pointer');
|
210
|
-
});
|
211
|
-
it('should disable country selector when enableCountryChange is false', function () {
|
212
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { enableCountryChange: false })));
|
213
|
-
var countryDisplay = react_1.screen.getByLabelText(/country:/i);
|
214
|
-
expect(countryDisplay).toBeInTheDocument();
|
215
|
-
expect(countryDisplay).toHaveStyle('cursor: default');
|
216
|
-
});
|
217
|
-
it('should open country dropdown when country selector is clicked', function () { return __awaiter(void 0, void 0, void 0, function () {
|
218
|
-
var countrySelector;
|
219
|
-
return __generator(this, function (_a) {
|
220
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { useModalForCountrySelection: false })));
|
221
|
-
countrySelector = react_1.screen.getByRole('button', {
|
222
|
-
name: /select country/i,
|
223
|
-
});
|
224
|
-
user_event_1.default.click(countrySelector);
|
225
|
-
// Should open dropdown listbox
|
226
|
-
expect(react_1.screen.getByRole('listbox')).toBeInTheDocument();
|
227
|
-
return [2 /*return*/];
|
228
|
-
});
|
229
|
-
}); });
|
230
|
-
it('should open country modal when useModalForCountrySelection is true', function () { return __awaiter(void 0, void 0, void 0, function () {
|
231
|
-
var countrySelector;
|
232
|
-
return __generator(this, function (_a) {
|
233
|
-
switch (_a.label) {
|
234
|
-
case 0:
|
235
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { useModalForCountrySelection: true })));
|
236
|
-
countrySelector = react_1.screen.getByRole('button', {
|
237
|
-
name: /select country/i,
|
238
|
-
});
|
239
|
-
user_event_1.default.click(countrySelector);
|
240
|
-
// Should open modal
|
241
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
242
|
-
expect(react_1.screen.getByRole('dialog')).toBeInTheDocument();
|
243
|
-
})];
|
244
|
-
case 1:
|
245
|
-
// Should open modal
|
246
|
-
_a.sent();
|
247
|
-
expect(react_1.screen.getByText('Select Country')).toBeInTheDocument();
|
248
|
-
return [2 /*return*/];
|
249
|
-
}
|
250
|
-
});
|
251
|
-
}); });
|
252
|
-
it('should call onCountryChange when country is selected', function () { return __awaiter(void 0, void 0, void 0, function () {
|
253
|
-
var mockOnCountryChange, countrySelector, countries, targetCountry, countryOption;
|
254
|
-
return __generator(this, function (_a) {
|
255
|
-
mockOnCountryChange = jest.fn();
|
256
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { onCountryChange: mockOnCountryChange, useModalForCountrySelection: false })));
|
257
|
-
countrySelector = react_1.screen.getByRole('button', {
|
258
|
-
name: /select country/i,
|
259
|
-
});
|
260
|
-
user_event_1.default.click(countrySelector);
|
261
|
-
countries = (0, countryData_1.getCountryData)();
|
262
|
-
targetCountry = countries.find(function (c) { return c.code !== countries[0].code; });
|
263
|
-
if (targetCountry) {
|
264
|
-
countryOption = react_1.screen.getByRole('option', {
|
265
|
-
name: new RegExp(targetCountry.name),
|
266
|
-
});
|
267
|
-
user_event_1.default.click(countryOption);
|
268
|
-
expect(mockOnCountryChange).toHaveBeenCalledWith(expect.objectContaining({
|
269
|
-
selectedCountry: targetCountry,
|
270
|
-
previousCountry: countries[0],
|
271
|
-
id: 'phone-input',
|
272
|
-
}));
|
273
|
-
}
|
274
|
-
return [2 /*return*/];
|
275
|
-
});
|
276
|
-
}); });
|
277
|
-
it('should preserve and reformat phone number when country changes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
278
|
-
var input, countrySelector, countries, targetCountry, countryOption;
|
279
|
-
return __generator(this, function (_a) {
|
280
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { useModalForCountrySelection: false })));
|
281
|
-
input = react_1.screen.getByRole('textbox');
|
282
|
-
// Type a number first
|
283
|
-
user_event_1.default.type(input, '2023456789');
|
284
|
-
expect(input).toHaveValue('(202) 345-6789');
|
285
|
-
countrySelector = react_1.screen.getByRole('button', {
|
286
|
-
name: /select country/i,
|
287
|
-
});
|
288
|
-
user_event_1.default.click(countrySelector);
|
289
|
-
countries = (0, countryData_1.getCountryData)();
|
290
|
-
targetCountry = countries.find(function (c) { return c.code !== countries[0].code; });
|
291
|
-
if (targetCountry) {
|
292
|
-
countryOption = react_1.screen.getByRole('option', {
|
293
|
-
name: new RegExp(targetCountry.name),
|
294
|
-
});
|
295
|
-
user_event_1.default.click(countryOption);
|
296
|
-
// Phone number should be preserved (though it may be reformatted for the new country)
|
297
|
-
expect(input).not.toHaveValue('');
|
298
|
-
// The original digits should still be present in some form
|
299
|
-
expect(input.value).toMatch(/2023456789/);
|
300
|
-
}
|
301
|
-
return [2 /*return*/];
|
302
|
-
});
|
303
|
-
}); });
|
304
|
-
it('should call onCountryChange when country is auto-detected from international number', function () { return __awaiter(void 0, void 0, void 0, function () {
|
305
|
-
var mockOnCountryChange, input;
|
306
|
-
return __generator(this, function (_a) {
|
307
|
-
switch (_a.label) {
|
308
|
-
case 0:
|
309
|
-
mockOnCountryChange = jest.fn();
|
310
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { initialCountry: "US", enableCountryChange: true, onCountryChange: mockOnCountryChange })));
|
311
|
-
input = react_1.screen.getByRole('textbox');
|
312
|
-
// Type a UK number (+44) - this should trigger auto-detection
|
313
|
-
user_event_1.default.type(input, '+441234567890');
|
314
|
-
// Should call onCountryChange for auto-detection
|
315
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
316
|
-
expect(mockOnCountryChange).toHaveBeenCalledWith(expect.objectContaining({
|
317
|
-
id: 'phone-input',
|
318
|
-
selectedCountry: expect.objectContaining({
|
319
|
-
code: 'GB',
|
320
|
-
name: 'United Kingdom',
|
321
|
-
}),
|
322
|
-
previousCountry: expect.objectContaining({
|
323
|
-
code: 'US',
|
324
|
-
}),
|
325
|
-
}));
|
326
|
-
})];
|
327
|
-
case 1:
|
328
|
-
// Should call onCountryChange for auto-detection
|
329
|
-
_a.sent();
|
330
|
-
return [2 /*return*/];
|
331
|
-
}
|
332
|
-
});
|
333
|
-
}); });
|
334
|
-
it('should call onCountryChange for different international numbers', function () { return __awaiter(void 0, void 0, void 0, function () {
|
335
|
-
var mockOnCountryChange, input;
|
336
|
-
return __generator(this, function (_a) {
|
337
|
-
switch (_a.label) {
|
338
|
-
case 0:
|
339
|
-
mockOnCountryChange = jest.fn();
|
340
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { initialCountry: "US", enableCountryChange: true, onCountryChange: mockOnCountryChange })));
|
341
|
-
input = react_1.screen.getByRole('textbox');
|
342
|
-
// Type a French number (+33) - this should trigger auto-detection
|
343
|
-
user_event_1.default.type(input, '+33123456789');
|
344
|
-
// Should call onCountryChange for auto-detection to France
|
345
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
346
|
-
expect(mockOnCountryChange).toHaveBeenCalledWith(expect.objectContaining({
|
347
|
-
id: 'phone-input',
|
348
|
-
selectedCountry: expect.objectContaining({
|
349
|
-
code: 'FR',
|
350
|
-
name: 'France',
|
351
|
-
}),
|
352
|
-
previousCountry: expect.objectContaining({
|
353
|
-
code: 'US',
|
354
|
-
}),
|
355
|
-
}));
|
356
|
-
})];
|
357
|
-
case 1:
|
358
|
-
// Should call onCountryChange for auto-detection to France
|
359
|
-
_a.sent();
|
360
|
-
return [2 /*return*/];
|
361
|
-
}
|
362
|
-
});
|
363
|
-
}); });
|
364
|
-
});
|
365
|
-
describe('Error States', function () {
|
366
|
-
it('should display external error message', function () {
|
367
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { errorMessage: "This field is required" })));
|
368
|
-
expect(react_1.screen.getByText('This field is required')).toBeInTheDocument();
|
369
|
-
});
|
370
|
-
it('should prioritize external error over validation error', function () { return __awaiter(void 0, void 0, void 0, function () {
|
371
|
-
var input;
|
372
|
-
return __generator(this, function (_a) {
|
373
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { errorMessage: "This field is required" })));
|
374
|
-
input = react_1.screen.getByRole('textbox');
|
375
|
-
// Type invalid number (would normally show validation error)
|
376
|
-
user_event_1.default.type(input, '123');
|
377
|
-
// Should still show external error, not validation error
|
378
|
-
expect(react_1.screen.getByText('This field is required')).toBeInTheDocument();
|
379
|
-
expect(react_1.screen.queryByText('Please enter a valid phone number')).not.toBeInTheDocument();
|
380
|
-
return [2 /*return*/];
|
381
|
-
});
|
382
|
-
}); });
|
383
|
-
});
|
384
|
-
describe('Value Prop and Controlled State', function () {
|
385
|
-
it('should parse and display value with country code', function () {
|
386
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { value: "+441212345678" })));
|
387
|
-
var input = react_1.screen.getByRole('textbox');
|
388
|
-
// Should show formatted UK number
|
389
|
-
expect(input.value).toContain('0121 234 5678');
|
390
|
-
});
|
391
|
-
it('should detect country from international number', function () {
|
392
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { value: "+441212345678" })));
|
393
|
-
// Should detect UK and show UK flag (test indirectly via placeholder)
|
394
|
-
var input = react_1.screen.getByRole('textbox');
|
395
|
-
var ukCountry = (0, countryData_1.getCountryData)().find(function (c) { return c.code === 'GB'; });
|
396
|
-
expect(input).toHaveAttribute('placeholder', ukCountry === null || ukCountry === void 0 ? void 0 : ukCountry.example);
|
397
|
-
});
|
398
|
-
});
|
399
|
-
describe('Accessibility', function () {
|
400
|
-
it('should have proper ARIA labels', function () {
|
401
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
402
|
-
var input = react_1.screen.getByRole('textbox');
|
403
|
-
expect(input).toHaveAttribute('id', 'phone-input');
|
404
|
-
var label = react_1.screen.getByText('Phone Number');
|
405
|
-
expect(label).toHaveAttribute('for', 'phone-input');
|
406
|
-
});
|
407
|
-
it('should support keyboard navigation for country selector', function () { return __awaiter(void 0, void 0, void 0, function () {
|
408
|
-
var countrySelector;
|
409
|
-
return __generator(this, function (_a) {
|
410
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
411
|
-
countrySelector = react_1.screen.getByRole('button', {
|
412
|
-
name: /select country/i,
|
413
|
-
});
|
414
|
-
// Test Enter key
|
415
|
-
countrySelector.focus();
|
416
|
-
user_event_1.default.keyboard('{Enter}');
|
417
|
-
expect(react_1.screen.getByRole('listbox')).toBeInTheDocument();
|
418
|
-
return [2 /*return*/];
|
419
|
-
});
|
420
|
-
}); });
|
421
|
-
it('should support space key for country selector', function () { return __awaiter(void 0, void 0, void 0, function () {
|
422
|
-
var countrySelector;
|
423
|
-
return __generator(this, function (_a) {
|
424
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
425
|
-
countrySelector = react_1.screen.getByRole('button', {
|
426
|
-
name: /select country/i,
|
427
|
-
});
|
428
|
-
// Test Space key
|
429
|
-
countrySelector.focus();
|
430
|
-
user_event_1.default.keyboard(' ');
|
431
|
-
expect(react_1.screen.getByRole('listbox')).toBeInTheDocument();
|
432
|
-
return [2 /*return*/];
|
433
|
-
});
|
434
|
-
}); });
|
435
|
-
});
|
436
|
-
describe('Country Search Feature', function () {
|
437
|
-
it('should enable country search by default', function () { return __awaiter(void 0, void 0, void 0, function () {
|
438
|
-
var countrySelector;
|
439
|
-
return __generator(this, function (_a) {
|
440
|
-
switch (_a.label) {
|
441
|
-
case 0:
|
442
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { useModalForCountrySelection: true, enableCountrySearch: true })));
|
443
|
-
countrySelector = react_1.screen.getByRole('button', {
|
444
|
-
name: /select country/i,
|
445
|
-
});
|
446
|
-
user_event_1.default.click(countrySelector);
|
447
|
-
// Should show search input in modal
|
448
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
449
|
-
expect(react_1.screen.getByPlaceholderText('Search countries...')).toBeInTheDocument();
|
450
|
-
})];
|
451
|
-
case 1:
|
452
|
-
// Should show search input in modal
|
453
|
-
_a.sent();
|
454
|
-
return [2 /*return*/];
|
455
|
-
}
|
456
|
-
});
|
457
|
-
}); });
|
458
|
-
it('should disable country search when enableCountrySearch is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
459
|
-
var countrySelector;
|
460
|
-
return __generator(this, function (_a) {
|
461
|
-
switch (_a.label) {
|
462
|
-
case 0:
|
463
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { enableCountrySearch: false, useModalForCountrySelection: true })));
|
464
|
-
countrySelector = react_1.screen.getByRole('button', {
|
465
|
-
name: /select country/i,
|
466
|
-
});
|
467
|
-
user_event_1.default.click(countrySelector);
|
468
|
-
// Should not show search input in modal
|
469
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
470
|
-
expect(react_1.screen.queryByPlaceholderText('Search countries...')).not.toBeInTheDocument();
|
471
|
-
})];
|
472
|
-
case 1:
|
473
|
-
// Should not show search input in modal
|
474
|
-
_a.sent();
|
475
|
-
return [2 /*return*/];
|
476
|
-
}
|
477
|
-
});
|
478
|
-
}); });
|
479
|
-
});
|
480
|
-
describe('Edge Cases', function () {
|
481
|
-
it('should handle empty value gracefully', function () {
|
482
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { value: "" })));
|
483
|
-
var input = react_1.screen.getByRole('textbox');
|
484
|
-
expect(input).toHaveValue('');
|
485
|
-
});
|
486
|
-
it('should handle invalid initial country code', function () {
|
487
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps, { initialCountry: "INVALID" })));
|
488
|
-
// Should fallback to first country
|
489
|
-
var countries = (0, countryData_1.getCountryData)();
|
490
|
-
var input = react_1.screen.getByRole('textbox');
|
491
|
-
expect(input).toHaveAttribute('placeholder', countries[0].example);
|
492
|
-
});
|
493
|
-
it('should handle cursor position correctly during formatting', function () { return __awaiter(void 0, void 0, void 0, function () {
|
494
|
-
var input;
|
495
|
-
return __generator(this, function (_a) {
|
496
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, __assign({}, defaultProps)));
|
497
|
-
input = react_1.screen.getByRole('textbox');
|
498
|
-
// Type partial number
|
499
|
-
user_event_1.default.type(input, '202345');
|
500
|
-
// Set cursor in middle
|
501
|
-
input.setSelectionRange(3, 3);
|
502
|
-
// Type more digits
|
503
|
-
user_event_1.default.type(input, '9');
|
504
|
-
// Cursor should be in reasonable position (exact position may vary due to formatting)
|
505
|
-
expect(input.selectionStart).toBeGreaterThan(0);
|
506
|
-
return [2 /*return*/];
|
507
|
-
});
|
508
|
-
}); });
|
509
|
-
});
|
510
|
-
describe('enableCountryChange disabled behavior', function () {
|
511
|
-
it('should not change country when typing international number and enableCountryChange is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
512
|
-
var onCountryChange, onPhoneNumberChange, input, lastCall, lastCallData;
|
513
|
-
return __generator(this, function (_a) {
|
514
|
-
switch (_a.label) {
|
515
|
-
case 0:
|
516
|
-
onCountryChange = jest.fn();
|
517
|
-
onPhoneNumberChange = jest.fn();
|
518
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { id: "test-phone", label: "Phone Number", value: "", initialCountry: "US", enableCountryChange: false, onBlur: function () { }, onClick: function () { }, disabled: false, isAnswered: false, isSafari: false, isAutoFilledActive: false, type: "tel", experimentName: "test", onCountryChange: onCountryChange, onPhoneNumberChange: onPhoneNumberChange }));
|
519
|
-
input = react_1.screen.getByRole('textbox');
|
520
|
-
// Type a UK number (+44) while US is selected
|
521
|
-
user_event_1.default.type(input, '+447769481232');
|
522
|
-
// Wait for state updates
|
523
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
524
|
-
expect(onPhoneNumberChange).toHaveBeenCalled();
|
525
|
-
})];
|
526
|
-
case 1:
|
527
|
-
// Wait for state updates
|
528
|
-
_a.sent();
|
529
|
-
// Country should NOT have changed to GB
|
530
|
-
expect(onCountryChange).not.toHaveBeenCalled();
|
531
|
-
lastCall = onPhoneNumberChange.mock.calls[onPhoneNumberChange.mock.calls.length - 1];
|
532
|
-
lastCallData = lastCall[0];
|
533
|
-
expect(lastCallData.phoneNumber).toContain('+447769481232');
|
534
|
-
// Should still be using US country code context (validation should be against US)
|
535
|
-
expect(lastCallData.phoneNumber).not.toMatch(/^\+44 7769 481232$/); // UK format
|
536
|
-
return [2 /*return*/];
|
537
|
-
}
|
538
|
-
});
|
539
|
-
}); });
|
540
|
-
it('should validate against selected country only when enableCountryChange is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
541
|
-
var onValidationChange, input, lastCall, lastCallData;
|
542
|
-
return __generator(this, function (_a) {
|
543
|
-
switch (_a.label) {
|
544
|
-
case 0:
|
545
|
-
onValidationChange = jest.fn();
|
546
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { id: "test-phone", label: "Phone Number", value: "", initialCountry: "US", enableCountryChange: false, onBlur: function () { }, onClick: function () { }, disabled: false, isAnswered: false, isSafari: false, isAutoFilledActive: false, type: "tel", experimentName: "test", onValidationChange: onValidationChange }));
|
547
|
-
input = react_1.screen.getByRole('textbox');
|
548
|
-
// Type a UK number that's invalid for US
|
549
|
-
user_event_1.default.type(input, '+447769481231');
|
550
|
-
// Wait for validation
|
551
|
-
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
552
|
-
expect(onValidationChange).toHaveBeenCalled();
|
553
|
-
})];
|
554
|
-
case 1:
|
555
|
-
// Wait for validation
|
556
|
-
_a.sent();
|
557
|
-
lastCall = onValidationChange.mock.calls[onValidationChange.mock.calls.length - 1];
|
558
|
-
lastCallData = lastCall[0];
|
559
|
-
expect(lastCallData.isValid).toBe(false);
|
560
|
-
return [2 /*return*/];
|
561
|
-
}
|
562
|
-
});
|
563
|
-
}); });
|
564
|
-
});
|
565
|
-
describe('disabled behavior', function () {
|
566
|
-
it('should disable country selector when disabled is true', function () {
|
567
|
-
var onCountryChange = jest.fn();
|
568
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { id: "test-phone", label: "Phone Number", value: "", initialCountry: "US", enableCountryChange: true, onBlur: function () { }, onClick: function () { }, disabled: true, isAnswered: false, isSafari: false, isAutoFilledActive: false, type: "tel", experimentName: "test", onCountryChange: onCountryChange }));
|
569
|
-
// Find the country selector by its aria-label (when disabled, it's not a button)
|
570
|
-
var countrySelector = react_1.screen.getByLabelText('Country: United States');
|
571
|
-
// When disabled, the country selector should not be interactive
|
572
|
-
// It should not have a button role and should not respond to clicks
|
573
|
-
expect(countrySelector).toBeInTheDocument();
|
574
|
-
expect(countrySelector).not.toHaveAttribute('role', 'button');
|
575
|
-
// The country selector should have reduced opacity (this is handled by CSS)
|
576
|
-
// We can verify the disabled state by checking that clicking doesn't open the dropdown
|
577
|
-
user_event_1.default.click(countrySelector);
|
578
|
-
// Since it's disabled, no country change should occur
|
579
|
-
expect(onCountryChange).not.toHaveBeenCalled();
|
580
|
-
});
|
581
|
-
it('should disable both phone input and country selector when disabled is true', function () {
|
582
|
-
(0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { id: "test-phone", label: "Phone Number", value: "", initialCountry: "US", enableCountryChange: true, onBlur: function () { }, onClick: function () { }, disabled: true, isAnswered: false, isSafari: false, isAutoFilledActive: false, type: "tel", experimentName: "test" }));
|
583
|
-
var input = react_1.screen.getByRole('textbox');
|
584
|
-
var countrySelector = react_1.screen.getByLabelText('Country: United States');
|
585
|
-
// Both should be disabled
|
586
|
-
expect(input).toBeDisabled();
|
587
|
-
expect(countrySelector).toBeInTheDocument();
|
588
|
-
// The country selector should not be clickable when disabled
|
589
|
-
user_event_1.default.click(countrySelector);
|
590
|
-
// No dropdown should appear (this is handled by the useCountrySelector hook)
|
591
|
-
// We can verify this by checking that the country selector doesn't have button role
|
592
|
-
expect(countrySelector).not.toHaveAttribute('role', 'button');
|
593
|
-
});
|
594
|
-
});
|
595
|
-
});
|
596
|
-
//# sourceMappingURL=PhoneNumberTextField.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"PhoneNumberTextField.test.js","sourceRoot":"","sources":["../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.tsx"],"names":[],"mappings":"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"}
|