Update files

This commit is contained in:
thatblindgeye
2023-01-21 12:53:41 -05:00
parent fb1a2db8d7
commit 4a112362c8
31 changed files with 571 additions and 449 deletions
+19
View File
@@ -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"
);
});
});