Mark caesar as archived and move archived exercise to own folder (#336)

This commit is contained in:
Asartea
2023-03-18 22:45:37 +01:00
committed by GitHub
parent 6f5f71ff5b
commit 75869d1912
15 changed files with 0 additions and 0 deletions
@@ -0,0 +1,19 @@
const snakeCase = function (string) {
// wtf case
string = string.replace(/\.\./g, " ");
// this splits up camelcase IF there are no spaces in the word
if (string.indexOf(" ") < 0) {
string = string.replace(/([A-Z])/g, " $1");
}
return string
.trim()
.toLowerCase()
.replace(/[,\?\.]/g, "")
.replace(/\-/g, " ")
.split(" ")
.join("_");
};
module.exports = snakeCase;
@@ -0,0 +1,26 @@
const snakeCase = require('./snakeCase-solution');
describe('snakeCase', () => {
test('works with simple lowercased phrases', () => {
expect(snakeCase('hello world')).toEqual('hello_world');
});
test('works with Caps and punctuation', () => {
expect(snakeCase('Hello, World???')).toEqual('hello_world');
});
test('works with longer phrases', () => {
expect(snakeCase('This is the song that never ends....')).toEqual(
'this_is_the_song_that_never_ends'
);
});
test('works with camel case', () => {
expect(snakeCase('snakeCase')).toEqual('snake_case');
});
test('works with kebab case', () => {
expect(snakeCase('snake-case')).toEqual('snake_case');
});
test('works with WTF case', () => {
expect(snakeCase('SnAkE..CaSe..Is..AwEsOmE')).toEqual(
'snake_case_is_awesome'
);
});
});