-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidateInput.test.js
More file actions
166 lines (141 loc) · 4.75 KB
/
Copy pathvalidateInput.test.js
File metadata and controls
166 lines (141 loc) · 4.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
const validateInput = require('./validateInput.js');
test('input should be valid and return true', () => {
const input = '100';
const result = validateInput(input);
expect(result.isValid).toBe(true);
});
describe('validateInput', () => {
// Existing test cases (assuming you've already covered cases like empty input, valid integer input)
test('should return error for non-integer input', () => {
const result = validateInput("12.5");
expect(result).toEqual({
isValid: false,
error: "Please enter a whole number."
});
});
// Additional case for a valid integer input, for completeness
test('should return valid result for integer input', () => {
const result = validateInput("10");
expect(result).toEqual({
isValid: true,
value: 10
});
});
// Additional edge case for non-numeric input
test('should return error for non-numeric input', () => {
const result = validateInput("abc");
expect(result).toEqual({
isValid: false,
error: "Invalid input format."
});
});
});
describe('validateInput', () => {
// Test case for empty input
test('should return error for empty input', () => {
const result = validateInput("");
expect(result).toEqual({
isValid: false,
error: "No amount entered. Please enter a valid number."
});
});
// Test case for null input
test('should return error for null input', () => {
const result = validateInput(null);
expect(result).toEqual({
isValid: false,
error: "No amount entered. Please enter a valid number."
});
});
// Test case for undefined input
test('should return error for undefined input', () => {
const result = validateInput(undefined);
expect(result).toEqual({
isValid: false,
error: "No amount entered. Please enter a valid number."
});
});
test('should return valid result for integer input as string', () => {
const result = validateInput("100");
expect(result).toEqual({
isValid: true,
value: 100
});
});
// Test case for valid integer number
test('should return valid result for integer input as number', () => {
const result = validateInput(100);
expect(result).toEqual({
isValid: true,
value: 100
});
});
// Test case for negative integer input
test('should return valid result for negative integer input', () => {
const result = validateInput("-50");
expect(result).toEqual({
isValid: true,
value: -50
});
});
// Test case for positive float input
test('should return error for non-integer (float) input', () => {
const result = validateInput("10.5");
expect(result).toEqual({
isValid: false,
error: "Please enter a whole number."
});
});
// Test case for negative float input
test('should return error for non-integer (negative float) input', () => {
const result = validateInput("-20.7");
expect(result).toEqual({
isValid: false,
error: "Please enter a whole number."
});
});
// Test case for non-numeric string input
test('should return error for non-numeric input', () => {
const result = validateInput("abc");
expect(result).toEqual({
isValid: false,
error: "Invalid input format."
});
});
// Test case for alphanumeric input
test('should return error for alphanumeric input', () => {
const result = validateInput("123abc");
expect(result).toEqual({
isValid: false,
error: "Invalid input format."
});
});
// Test case for special characters
test('should return error for special characters input', () => {
const result = validateInput("!@#$%");
expect(result).toEqual({
isValid: false,
error: "Invalid input format."
});
});
});
const xlsx = require('xlsx');
describe('validateInput Function with ECP values from Excel', () => {
// Load data from the Excel file
const workbook = xlsx.readFile('inputTestCases.xlsx'); // Make sure this file is in the same directory
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
const rows = xlsx.utils.sheet_to_json(worksheet);
// Iterate over each row and run the test
rows.forEach((row, index) => {
test(`validateInput Test Case ${index + 1}`, () => {
const { InputAmount, ExpectedIsValid, ExpectedError, ExpectedValue } = row;
const result = validateInput(InputAmount);
expect(result.isValid).toBe(ExpectedIsValid);
if (ExpectedIsValid) {
expect(result.value).toBe(ExpectedValue);
} else {
expect(result.error).toBe(ExpectedError);
}
});
});
});