@comparaonline/offers-models-factories
Version:
Models for comparaonline offers
277 lines (188 loc) • 6.23 kB
Markdown
## Offers Models Factories Package
This library contains the factories for test support on Marketplace related projects
### How to use:
Add the ```@comparaonline/offers-models-factories``` to project.
#### Use as the example:
```typescript
import { countryFactory } from '@comparaonline/offers-models-factories'
const country = countryFactory.build();
```
#### Passing custom data to Factory:
As FactoryGirls or similar libraries you can pass custom objects variables.
```typescript
import { countryFactory } from '@comparaonline/offers-models-factories'
countryParams = { code: 'cl', name: 'Chile' };
const country = countryFactory.build(countryParams);
```
### Contains Types definition for:
#### BusinessUnit
```typescript
import { businessUnitFactory } from '@comparaonline/offers-models-factories'
const bu = businessUnitFactory.build();
```
#### Company
```typescript
import { companyFactory } from '@comparaonline/offers-models-factories'
const company = companyFactory.build();
```
#### Country
```typescript
import { countryFactory } from '@comparaonline/offers-models-factories'
const company = companyFactory.build();
```
#### Division
```typescript
import { divisionFactory } from '@comparaonline/offers-models-factories'
const division = divisionFactory.build();
```
#### Entity
```typescript
import { entityFactory } from '@comparaonline/offers-models-factories'
const entity = entityFactory.build();
```
##### EntityMoneyInstallment
```typescript
import { entityMoneyInstallmentFactory } from '@comparaonline/offers-models-factories'
const entityMoneyInstallment = entityMoneyInstallmentFactory.build();
```
##### EntityList
```typescript
import { entityListFactory } from '@comparaonline/offers-models-factories'
const entityList = entityListFactory.build();
```
##### EntityMoney
```typescript
import { entityMoneyFactory } from '@comparaonline/offers-models-factories'
const entityMoney = entityMoneyFactory.build();
```
##### EntityNumber
```typescript
import { entityNumberFactory } from '@comparaonline/offers-models-factories'
const entityNumber = entityNumberFactory.build();
```
##### EntityPercentage
```typescript
import { entityPercentageFactory } from '@comparaonline/offers-models-factories'
const entityPercentage = entityPercentageFactory.build();
```
##### EntityTerm
```typescript
import { entityTermFactory } from '@comparaonline/offers-models-factories'
const entityTerm = entityTermFactory.build();
```
#### EntityFilter
```typescript
import { entityFilterFactory } from '@comparaonline/offers-models-factories'
const entityFilter = entityFilterFactory.build();
```
#### Filter
```typescript
import { filterFactory } from '@comparaonline/offers-models-factories'
const filter = filterFactory.build();
```
#### FormatMoney
```typescript
import { formatMoneyFactory } from '@comparaonline/offers-models-factories'
const formatMoney = formatMoneyFactory.build();
```
#### FormatNumber
```typescript
import { formatNumberFactory } from '@comparaonline/offers-models-factories'
const formatNumber = formatNumberFactory.build();
```
#### FormatPercentage
```typescript
import { formatPercentageFactory } from '@comparaonline/offers-models-factories'
const formatPercentage = formatPercentageFactory.build();
```
#### FormatUnit
```typescript
import { formatUnitFactory } from '@comparaonline/offers-models-factories'
const formatUnitFactory = formatUnitFactory.build();
```
#### Offer
```typescript
import { offerFactory } from '@comparaonline/offers-models-factories'
const offer = offerFactory.build();
```
#### Product
```typescript
import { productFactory } from '@comparaonline/offers-models-factories'
const product = productFactory.build();
```
#### ProductAttribute:
- \#build default Mode:
With default mode the value will be defined ramdonly in base of a ramdon selection of the entity type.
```typescript
import { productAttributeFactory } from '@comparaonline/offers-models-factories'
const productAttribute = productAttributeFactory.build();
```
- \#buildType (Force entityType):
```typescript
import { productAttributeFactory } from '@comparaonline/offers-models-factories'
const productAttribute = productAttributeFactory.buildType('money');
```
Types supported: ```[integer, money-installment, list, money, percentage, string, term] ```
#### Fixed Attributes Factories
These factories are the same as ```productAttributeFactory.buildType()``` with supported the ```value``` type when you pass the custom variables.
##### MoneyInstallmentAttribute
```typescript
import { moneyInstallmentAttributeFactory } from '@comparaonline/offers-models-factories'
const value: {
total: { value: 100000 },
installments: [
{
number: 1,
price: 100000,
total: ( 100000 * 1 )
},
{
number: 2,
price: 50000,
total: (2 * 50000)
},
{
number: 3,
price: 33333,
total: 3 * 33333
}
]
}
const moneyInstallmentAttribute = moneyInstallmentAttributeFactory.build({ value });
```
##### IntegerAttribute
```typescript
import { integerAttributeFactory } from '@comparaonline/offers-models-factories'
const value:Number = 1000000;
const integerAttribute = integerAttributeFactory.build({ value: value });
```
##### StringAttribute
```typescript
import { stringAttributeFactory } from '@comparaonline/offers-models-factories'
const value:string = 'Hello';
const stringAttribute = stringAttributeFactory.build({ value: value });
```
##### ListAttribute
```typescript
import { listAttributeFactory } from '@comparaonline/offers-models-factories'
const value:string[] = ['Hello', 'how', 'are', 'you', '?'];
const listAttribute = listAttributeFactory.build({ value: value });
```
##### MoneyAttribute
```typescript
import { moneyAttributeFactory } from '@comparaonline/offers-models-factories'
const value: = {
type: 'clp',
value: 10000
};
const moneyAttribute = moneyAttributeFactory.build({ value: value });
```
##### TermAttribute
```typescript
import { termAttributeFactory } from '@comparaonline/offers-models-factories'
const value: = {
datePart: 'years',
value: 20
};
const termAttribute = termAttributeFactory.build({ value: value });
```