Last active
January 25, 2022 18:20
-
-
Save umutbasal/8f80fa6ec4d2e9ccb6a2402c694f44ec to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| let storage = {}; | |
| let get = function (key) { | |
| return storage[key]; | |
| } | |
| let put = function (key, value) { | |
| storage[key] = value; | |
| } | |
| let del = function (key) { | |
| delete storage[key]; | |
| } | |
| function createUser(username, password) { | |
| let user = { | |
| username: username, | |
| password: password | |
| } | |
| put(username, user); | |
| return get(username); | |
| } | |
| function createPost(username, title, content) { | |
| let post = { | |
| title: title, | |
| content: content | |
| } | |
| let user = {...get(username)}; | |
| user.posts = user.posts || []; | |
| user.posts.push(post); | |
| put(username, user); | |
| return get(username); | |
| } | |
| function deletePosts(username) { | |
| let user = {...get(username)}; | |
| user.posts = []; | |
| put(username, user); | |
| return get(username); | |
| } | |
| function form() { | |
| // Create user | |
| createUser('user1', 'pass1'); | |
| // Create post | |
| createPost('user1', 'title1', 'content1'); | |
| // Delete posts | |
| deletePosts('user1'); | |
| } | |
| function test() { | |
| let mockEvents = []; | |
| let mock = (name, func) => { | |
| return (...args) => { | |
| let ret = func(...args); | |
| mockEvents.push({ name, args, ret }) | |
| return ret; | |
| }; | |
| }; | |
| get = mock('get', get); | |
| put = mock('put', put); | |
| del = mock('del', del); | |
| form(); | |
| // put function | |
| console.log(mockEvents[0].name == 'put'); | |
| console.log(mockEvents[0].args[0] == 'user1'); | |
| // console.log(mockEvents[0].args[1].username == 'user1'); | |
| // console.log(mockEvents[0].args[1].password == 'pass1'); | |
| // // get function | |
| // console.log(mockEvents[1].name == 'get'); | |
| // console.log(mockEvents[1].args[0] == 'user1'); | |
| // console.log(mockEvents[1].ret.username == 'user1'); | |
| // console.log(mockEvents[1].ret.password == 'pass1'); | |
| console.log(mockEvents) | |
| } | |
| test() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment