New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

test-randomizing

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

test-randomizing

Test Randomizing helps you to build randomized objects or class instances for your tests.

latest
Source
npmnpm
Version
0.5.1
Version published
Weekly downloads
381
-18.59%
Maintainers
1
Weekly downloads
 
Created
Source

test-randomizing

Helps you to build randomized objects for your tests.

GitHub release GitHub stars vr scripts deno docs MIT License 0 dependencies

works in with esm, cjs... works in with esm, cjs... works with Node.js works with Deno

published on nest.land published on deno.land published on npm

🏗 Install

Deno (nest.land and deno.land)

import {
  freezeMerge,
  merge,
  RandomFn,
  freezeMergeFactory
} from "https://x.nest.land/test_randomizing@0.5.0/mod.ts";
// or
import {
  freezeMerge,
  merge,
  RandomFn,
  freezeMergeFactory
} from "https://deno.land/x/test_randomizing@0.5.0/mod.ts";

Node.js (npm.js)

npm install --save-dev test-randomizing
# or
yarn add --dev test-randomizing

🤷🏽‍♂️ How to use

You can use test randomizing in JavaScript and TypeScript projects.

We recommend using a library (like fakerjs or deno faker) to create randomized objects.

Deno example ./examples/deno:

import { freezeMergeFactory } from "https://x.nest.land/test_randomizing@0.5.0/mod.ts";
import { faker } from "https://deno.land/x/deno_faker@v1.0.3/mod.ts";
import { assertEquals } from "https://deno.land/std@0.119.0/testing/asserts.ts";

// Implementation
const generateEmail = (person: Person) => {
  if (!person.companyName || (!person.firstName && !person.lastName)) {
    return undefined;
  }

  return `${person.firstName}.${person.lastName}@${person.companyName}.com`;
};

// Types
type Person = {
  firstName: string;
  lastName: string;
  companyName: string;
};

// Test code
const randomPerson = freezeMergeFactory<Person>({
  firstName: faker.name.firstName(),
  lastName: faker.name.lastName(),
  companyName: faker.company.companyName(),
});

Deno.test("consist of firstname.lastname@companyname.com", () => {
  const person = randomPerson({
    firstName: "steve",
    lastName: "jobs",
    companyName: "apple",
  });

  const email = generateEmail(person);

  assertEquals(email, "steve.jobs@apple.com");
});

Deno.test("returns undefined if firstName and lastName is empty", () => {
  const person = randomPerson({ firstName: "", lastName: "" });

  const email = generateEmail(person);

  assertEquals(email, undefined);
});

Deno.test("returns undefined if companyName is empty", () => {
  const person = randomPerson({ companyName: "" });

  const email = generateEmail(person);

  assertEquals(email, undefined);
});

Typescript Node.js example ./examples/nodejs-ts:

import { DeepPartial, freezeMerge, RandomFn } from "test-randomizing";
import { company, name } from "faker";

// Implementation
const generateEmail = (person: Person) => {
  if (!person.companyName || (!person.firstName && !person.lastName)) {
    return undefined;
  }

  return `${person.firstName}.${person.lastName}@${person.companyName}.com`;
};

// Types
type Person = {
  firstName: string;
  lastName: string;
  companyName: string;
};

// Test code
const randomPerson: RandomFn<Person> = (override?: DeepPartial<Person>) =>
  freezeMerge({
    firstName: faker.name.firstName(),
    lastName: faker.name.lastName(),
    companyName: faker.company.companyName(),
  }, override);

test("consist of firstname.lastname@companyname.com", () => {
  const person = randomPerson({
    firstName: "steve",
    lastName: "jobs",
    companyName: "apple",
  });

  const email = generateEmail(person);

  expect(email).toEqual("steve.jobs@apple.com");
});

test("returns undefined if firstName and lastName is empty", () => {
  const person = randomPerson({ firstName: "", lastName: "" });

  const email = generateEmail(person);

  expect(email).toBeUndefined();
});

test("returns undefined if companyName is empty", () => {
  const person = randomPerson({ companyName: "" });

  const email = generateEmail(person);

  expect(email).toBeUndefined();
});

More complete examples in the ./examples directory:

License

MIT License

Copyright (c) 2021 Ti/o

Development

Use vr (Velociraptor) to run all commands like vr check and vr publish.

FAQs

Package last updated on 24 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts