generated from Seekra/repository-template
Add settings validator unit test #113
@@ -14,7 +14,8 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { describe } from 'vitest';
|
import { describe, test, expect } from 'vitest';
|
||||||
|
import { assertString } from '../settingsValidator';
|
||||||
|
|
||||||
describe('validateSettingsConfig', () => {
|
describe('validateSettingsConfig', () => {
|
||||||
|
|
||||||
@@ -33,5 +34,18 @@ describe('assertType', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('assertString', () => {
|
describe('assertString', () => {
|
||||||
|
test.for([
|
||||||
|
[0],
|
||||||
|
[1],
|
||||||
|
[42],
|
||||||
|
[-1],
|
||||||
|
[-42],
|
||||||
|
|
||||||
|
[''],
|
||||||
|
[' '],
|
||||||
|
[' '],
|
||||||
|
[' ']
|
||||||
|
])('throws error for the value %s', ([ value ]) => {
|
||||||
|
expect(() => assertString(value)).throws(Error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
@@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
|
|
||||||
const VALID_TYPES = ['bool', 'number', 'string', 'selection', 'section'];
|
const VALID_TYPES = ['bool', 'number', 'string', 'selection', 'section'];
|
||||||
|
|
||||||
function assertString(value, path) {
|
export const assertString = function assertString (value, path) {
|
||||||
if (typeof value !== 'string' || value.trim() === '') {
|
if (typeof value !== 'string' || value.trim() === '') {
|
||||||
throw new Error(`[settings] "${path}" must be a non-empty string`);
|
throw new Error(`[settings] "${path}" must be a non-empty string`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user