Skip to content

Instantly share code, notes, and snippets.

@umutbasal
Last active January 25, 2022 18:20
Show Gist options
  • Save umutbasal/8f80fa6ec4d2e9ccb6a2402c694f44ec to your computer and use it in GitHub Desktop.
Save umutbasal/8f80fa6ec4d2e9ccb6a2402c694f44ec to your computer and use it in GitHub Desktop.
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