mirror of https://github.com/01-edu/public.git
44 lines
1.7 KiB
JavaScript
44 lines
1.7 KiB
JavaScript
export const tests = []
|
|
const t = (f) => tests.push(f)
|
|
|
|
t(({ eq, ctx }) => eq(pick(ctx.agent, ['firstName', 'lastName']), ctx.newAgent))
|
|
t(({ eq, ctx }) => eq(pick(ctx.car, ['brand', 'year']), ctx.newCar))
|
|
t(({ eq, ctx }) => eq(pick(ctx.user, 'ageVerified'), ctx.newUser))
|
|
t(({ eq, ctx }) => eq(pick(ctx.computer, 'graphic'), {}))
|
|
t(({ eq, ctx }) => eq(omit(ctx.tools, ['grinders', 'saws']), ctx.newtool))
|
|
t(({ eq, ctx }) => eq(omit(ctx.games, ['board', 'cards']), ctx.newgames))
|
|
t(({ eq, ctx }) => eq(omit(ctx.language, 'Spain'), ctx.newlanguage))
|
|
t(({ eq, ctx }) => eq(omit(ctx.phone, 'iphone'), ctx.phone))
|
|
|
|
// It should ignore properties from the prototype chain
|
|
t(({ eq }) =>
|
|
eq(pick({ something: 5, __proto__: { d: 6 } }, ['proto', 'something']), {
|
|
something: 5,
|
|
}),
|
|
)
|
|
t(({ eq }) => eq(omit({ something: 5, __proto__: { d: 6 } }, 'something'), {}))
|
|
|
|
Object.freeze(tests)
|
|
|
|
export const setup = () => ({
|
|
agent: {
|
|
firstName: 'James',
|
|
lastName: 'Bond',
|
|
age: 25,
|
|
email: 'jamesbond@hotmail.com',
|
|
},
|
|
newAgent: { firstName: 'James', lastName: 'Bond' },
|
|
car: { brand: 'ford', motor: 'v8', year: 2000 },
|
|
newCar: { brand: 'ford', year: 2000 },
|
|
user: { firstName: 'John', lastName: 'Doe', age: 32, ageVerified: false },
|
|
newUser: { ageVerified: false },
|
|
computer: { brand: 'lenovo', ram: '32GB', processor: 'i7 8th Gen' },
|
|
tools: { drill: 'bosh', grinders: 'DeWalt', saws: ' Makita' },
|
|
newtool: { drill: 'bosh' },
|
|
games: { board: 'monopoly', cards: 'poker', dice: 'roulette' },
|
|
newgames: { dice: 'roulette' },
|
|
language: { England: 'english', Spain: 'spanish', Portugal: 'portuguese' },
|
|
newlanguage: { England: 'english', Portugal: 'portuguese' },
|
|
phone: { samsung: 'galaxy', asus: 'zenphone', nokia: 'lumia' },
|
|
})
|