chore: merge "Add tests for snake case algorithm" (#708)

* feat: adjust function name and use ES6 export

* feat: add test for SnakeCase

Co-authored-by: Alexandre VU <alexandre.vu@montreal.ca>
This commit is contained in:
alvux
2021-10-02 04:05:43 -04:00
committed by GitHub
parent ad9ff37385
commit b03a1b8bbe
2 changed files with 22 additions and 4 deletions

View File

@ -3,18 +3,18 @@
// Problem Source & Explanation: https://en.wikipedia.org/wiki/Naming_convention_(programming)
/**
* CheckSnakeCase method returns true if the string in snake_case, else return the false.
* checkSnakeCase method returns true if the string in snake_case, else return the false.
* @param {String} varName the name of the variable to check.
* @returns `Boolean` return true if the string is in snake_case, else return false.
*/
const CheckSnakeCase = (varName) => {
const checkSnakeCase = (varName) => {
// firstly, check that input is a string or not.
if (typeof varName !== 'string') {
return new TypeError('Argument is not a string.')
throw new TypeError('Argument is not a string.')
}
const pat = /(.*?)_([a-zA-Z])*/
return pat.test(varName)
}
module.exports = CheckSnakeCase
export { checkSnakeCase }

View File

@ -0,0 +1,18 @@
import { checkSnakeCase } from '../CheckSnakeCase'
describe('checkSnakeCase', () => {
it('expect to throw an error if input is not a string', () => {
expect(() => checkSnakeCase(0)).toThrow()
})
it('expects to return true if the input is in snake case format', () => {
const value = 'docker_build'
const result = checkSnakeCase(value)
expect(result).toBe(true)
})
it('expects to return false if the input is not in snake case format', () => {
const value = 'dockerBuild'
const result = checkSnakeCase(value)
expect(result).toBe(false)
})
})