mirror of
https://github.com/10h30/odin-javascript-exercises.git
synced 2026-06-05 15:09:09 +09:00
Update files
This commit is contained in:
@@ -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");
|
||||
|
||||
describe("snakeCase", () => {
|
||||
test("works with simple lowercased phrases", () => {
|
||||
expect(snakeCase("hello world")).toEqual("hello_world");
|
||||
});
|
||||
test.skip("works with Caps and punctuation", () => {
|
||||
expect(snakeCase("Hello, World???")).toEqual("hello_world");
|
||||
});
|
||||
test.skip("works with longer phrases", () => {
|
||||
expect(snakeCase("This is the song that never ends....")).toEqual(
|
||||
"this_is_the_song_that_never_ends"
|
||||
);
|
||||
});
|
||||
test.skip("works with camel case", () => {
|
||||
expect(snakeCase("snakeCase")).toEqual("snake_case");
|
||||
});
|
||||
test.skip("works with kebab case", () => {
|
||||
expect(snakeCase("snake-case")).toEqual("snake_case");
|
||||
});
|
||||
test.skip("works with WTF case", () => {
|
||||
expect(snakeCase("SnAkE..CaSe..Is..AwEsOmE")).toEqual(
|
||||
"snake_case_is_awesome"
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user