swagmock-specific
Version:
Mock data generator for swagger api
99 lines (93 loc) • 2.95 kB
JavaScript
;
const Moment = require('moment');
const Chance = require('chance').Chance();
const Randexp = require('randexp').randexp;
const date = () => Moment().format('YYYY-MM-DD');
const dateTime = () => Moment().toISOString();
const url = () => Chance.url({extensions: ['jpg', 'png']});
const name = () => Chance.name();
const email = () => Chance.email();
const phone = () => Chance.phone();
const address = () => Chance.address();
const boolean = () => Chance.bool();
const gender = () => Chance.gender();
const sentence = () => Chance.sentence();
const zip = () => Chance.zip();
const guid = () => Chance.guid();
const ipv4 = () => Chance.ip();
const ipv6 = () => Chance.ipv6();
const hostname = () => Randexp(/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/gm);
const message = () => Chance.sentence({words: 5});
const token = () => Chance.hash({length: 100});
// *** Especific to Coachecom API ***
const reminders_method = () => Chance.pickone(['email', 'push', 'sms']);
const reminders_type = () => Chance.pickone(['minutes', 'hours', 'days', 'weeks']);
// Curriculum
let occupations = ['Developer', 'Executive Secretary', 'Coach', 'Doctor', 'Driver'];
const academic = () => Chance.pickset(occupations, 2);
const experience = () => Chance.pickset(occupations, 2);
const interests = () => Chance.pickone(['Learn', 'Be better', 'Nothing']);
const currently = () => Chance.pickone(['Working', 'Studing', 'Nothing']);
const company = () => Chance.name({ nationality: 'en' });
const role = () => Chance.pickone(occupations);
// Sessions
let tools_type = [
'Avaliação sistêmica',
'Tétrade do tempo',
'Positividade e bem-estar',
'Forças pessoais',
'Linguagem de valorização',
'Perfil comportamental',
'Âncoras',
'Crenças',
'Valores'
];
const tools = () => Chance.pickset(tools_type, 2);
const tool = () => Chance.pickone(tools_type);
const sessionStatus = () => Chance.pickone(['Programada', 'Agendada', 'Concluída', 'Cancelada']);
// Company
const activity = () => Chance.pickone(['Development', 'Transport', 'Child Education']);
// Searches
let searches_type = [
'Linguagem de valorização',
'Dicas de relacionamento',
'Forças pessoais',
'Tétrade do tempo',
'Índice de positividade'
];
const searches = () => Chance.pickone(searches_type);
module.exports = {
date,
'date-time': dateTime,
uri: url,
url,
name,
email,
phone,
address,
boolean,
gender,
sentence,
token,
// Especific to Coachecom API
message,
zip,
reminders_type,
reminders_method,
academic,
experience,
interests,
currently,
company,
role,
tools,
tool,
'session-status': sessionStatus,
activity,
searches,
uuid: guid,
guid,
ipv4,
ipv6,
hostname
};