Git Product home page Git Product logo

Comments (3)

kenberkeley avatar kenberkeley commented on June 20, 2024 2

Solved by https://github.com/thoughtbot/fishery

from factory.ts.

ebramanti avatar ebramanti commented on June 20, 2024

This functionality is accomplishable using Async factories and the transform() function:

import { Async as Factory } from "factory.ts";
import Chance from 'chance'
const chance = new Chance()

interface IUser {
  id: number
  username: string
  password: string
  age: number
  createdAt: Date
  updatedAt: Date
}
const UserMock = Factory.makeFactory<IUser>({
  id: Factory.each(i => i),
  username: Factory.each(() => chance.name()),
  password: Factory.each(() => chance.hash()),
  age: Factory.each(() => chance.integer({ min: 0, max: 120 })),
  createdAt: Factory.each(() => chance.date()),
  updatedAt: Factory.each(() => chance.date())
})

type ILoginReqBody = Pick<IUser, 'username' | 'password'>
const LoginReqBodyMock = UserMock.transform(
  ({ username, password }) => ({ username, password })
)

const loginReqBody: ILoginReqBody = await LoginReqBodyMock.build();

The catch is that you must await the build method since this factory supports asynchronous values.

from factory.ts.

ebramanti avatar ebramanti commented on June 20, 2024

@kenberkeley opened #40 in an effort to close this gap for synchronous factories.

from factory.ts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.