Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions String/CheckSnakeCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
18 changes: 18 additions & 0 deletions String/test/CheckSnakeCase.test.js
Original file line number Diff line number Diff line change
@@ -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)
})
})