Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class RootDTO {
data!: DynamicA | DynamicB
}

describe('Dynamic Polymorphism Binding', () => {
describe('dynamic polymorphism binding', () => {
it('should correctly bind dynamically resolved classes and their nested fields', () => {
const middleware = bindingCargo(RootDTO)
const req = makeMockReq({
Expand Down
13 changes: 12 additions & 1 deletion packages/express-cargo/tests/binding/fileBinding.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
import { bindingCargo, Body, UploadedFile, UploadedFiles, Optional, getCargo, CargoValidationError, setCargoFileLocator, getCargoFileLocator, CargoFileLocator } from '../../src'
import {
bindingCargo,
Body,
UploadedFile,
UploadedFiles,
Optional,
getCargo,
CargoValidationError,
setCargoFileLocator,
getCargoFileLocator,
CargoFileLocator,
} from '../../src'
import { makeMockReq, makeMockRes, makeNext } from './testUtils'

/** Builds a multer-like file object. */
Expand Down
4 changes: 1 addition & 3 deletions packages/express-cargo/tests/binding/requestBinding.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { bindingCargo, getCargo } from '../../src'
import { Body, Request, Optional, Min } from '../../src'
import { bindingCargo, getCargo, Body, Request, Optional, Min, CargoSchemaError, CargoValidationError } from '../../src'
import { makeMockReq, makeMockRes, makeNext } from './testUtils'
import { CargoSchemaError, CargoValidationError } from '../../src'

class RequestDTO {
@Request(req => req.headers['x-user-id'])
Expand Down
4 changes: 1 addition & 3 deletions packages/express-cargo/tests/binding/virtualBinding.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { bindingCargo, getCargo } from '../../src'
import { Body, Virtual, Optional, Min } from '../../src'
import { bindingCargo, getCargo, Body, Virtual, Optional, Min, CargoValidationError } from '../../src'
import { makeMockReq, makeMockRes, makeNext } from './testUtils'
import { CargoValidationError } from '../../src'

class VirtualDTO {
@Body('firstName') firstName!: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Default } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { Default } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

describe('default decorator', () => {
describe('@Default decorator', () => {
class Sample {
@Default('default')
field1?: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Optional } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { Optional } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

describe('optional decorator', () => {
describe('@Optional decorator', () => {
class Sample {
@Optional()
field1?: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Request } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { Request } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

describe('request decorator', () => {
describe('@Request decorator', () => {
class Sample {
firstName!: string
lastName!: string
Expand All @@ -10,7 +10,7 @@ describe('request decorator', () => {
@Request(req => `${req.body?.firstName} ${req.body?.lastName}`)
fullName!: string

@Request(req => req.body?.age >= 18 ? 'Adult' : 'Minor' as string)
@Request(req => (req.body?.age >= 18 ? 'Adult' : ('Minor' as string)))
ageGroup!: string
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Transform } from '../../src/decorators/transform'
import { CargoClassMetadata } from '../../src/metadata'
import { Transform } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

describe('transform decorator', () => {
describe('@Transform decorator', () => {
class Sample {
@Transform((value: string) => value.toUpperCase())
text!: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Virtual } from '../../src/decorators/transform'
import { CargoClassMetadata } from '../../src/metadata'
import { Virtual } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

describe('virtual decorator', () => {
describe('@Virtual decorator', () => {
class Sample {
firstName!: string
lastName!: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { Enum } from '../../src/decorators/typeHelper'
import { CargoFieldError, Enum } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

enum Role {
ADMIN = 'admin',
Expand All @@ -12,7 +11,7 @@ enum NumericRole {
USER,
}

describe('enum', () => {
describe('@Enum decorator', () => {
class Sample {
@Enum(Role)
role!: Role
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { List } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { List } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

class CustomClass {}

describe('list decorator', () => {
describe('@List decorator', () => {
class Sample {
@List(String)
stringArray!: string[]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Type } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { Type } from '../../../src'
import { CargoClassMetadata } from '../../../src/metadata'

class ChildA {
a = 1
Expand All @@ -11,7 +11,7 @@ class Parent {
type!: string
}

describe('Type decorator', () => {
describe('@Type decorator', () => {
class Sample {
// Simple Thunk for single object
@Type(() => ChildA)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, Each, Min } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, Each, Min } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('Each decorator', () => {
describe('@Each decorator', () => {
class Sample {
@Each(Min(10))
numbers!: number[]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
import { ListContains, Body, CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { ListContains, Body, CargoFieldError } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('ListContains Validator', () => {
describe('@ListContains decorator', () => {
class TestClass {
@Body()
@ListContains(
['hello', 'world'],
(expected, actual) => typeof actual === 'string' && actual.toLowerCase() === expected.toLowerCase()
)
@ListContains(['hello', 'world'], (expected, actual) => typeof actual === 'string' && actual.toLowerCase() === expected.toLowerCase())
strings!: string[]

@Body()
@ListContains(
[1, 2],
(expected, actual) => Math.abs(actual - expected) <= 1
)
@ListContains([1, 2], (expected, actual) => Math.abs(actual - expected) <= 1)
numbers!: number[]

@Body()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ListMaxSize, Body, CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { ListMaxSize, Body, CargoFieldError } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('ListMaxSize Validator', () => {
describe('@ListMaxSize decorator', () => {
class TestClass {
@Body()
@ListMaxSize(3)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ListMinSize, Body, CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { ListMinSize, Body, CargoFieldError } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('ListMinSize Validator', () => {
describe('@ListMinSize decorator', () => {
class TestClass {
@Body()
@ListMinSize(3)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
import { ListNotContains, Body, CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { ListNotContains, Body, CargoFieldError } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('ListNotContains Validator', () => {
describe('@ListNotContains decorator', () => {
class TestClass {
@Body()
@ListNotContains(
['hello', 'world'],
(expected, actual) => typeof actual === 'string' && actual.toLowerCase() === expected.toLowerCase()
)
@ListNotContains(['hello', 'world'], (expected, actual) => typeof actual === 'string' && actual.toLowerCase() === expected.toLowerCase())
strings!: string[]

@Body()
@ListNotContains(
[1, 2],
(expected, actual) => Math.abs(actual - expected) <= 1
)
@ListNotContains([1, 2], (expected, actual) => Math.abs(actual - expected) <= 1)
numbers!: number[]

@Body()
Expand Down Expand Up @@ -141,4 +135,4 @@ describe('ListNotContains Validator', () => {

expect(rule).toBeUndefined()
})
})
})
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, Equal } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, Equal } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('equal decorator', () => {
describe('@Equal decorator', () => {
class Sample {
@Equal('admin')
role!: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IsFalse, CargoFieldError } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { IsFalse, CargoFieldError } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('isFalse decorator', () => {
describe('@IsFalse decorator', () => {
class Sample {
@IsFalse()
booleanValue!: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, IsTrue } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, IsTrue } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('isTrue decorator', () => {
describe('@IsTrue decorator', () => {
class Sample {
@IsTrue()
booleanValue!: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, NotEqual } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, NotEqual } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('NotEqual decorator', () => {
describe('@NotEqual decorator', () => {
class Sample {
@NotEqual('admin')
role!: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, OneOf } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, OneOf } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('oneOf decorator', () => {
describe('@OneOf decorator', () => {
class Sample {
@OneOf([10, 20, 30] as const)
element1!: number
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { CargoFieldError, Validate } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, Validate } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('validate decorator', () => {
describe('@Validate decorator', () => {
class Sample {
@Validate(number => number === 1, "number should be 1")
@Validate(number => number === 1, 'number should be 1')
number1!: number

number2!: number
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, With } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, With } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('with decorator', () => {
describe('@With decorator', () => {
const TARGET_FIELD = 'fieldA'
const RELATED_FIELD = 'fieldB'
class Sample {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, Without } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, Without } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('Without decorator', () => {
describe('@Without decorator', () => {
const TARGET_FIELD = 'fieldA'
const RELATED_FIELD = 'fieldB'
class Sample {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CargoFieldError, MaxDate } from '../../src'
import { CargoClassMetadata } from '../../src/metadata'
import { CargoFieldError, MaxDate } from '../../../../src'
import { CargoClassMetadata } from '../../../../src/metadata'

describe('maxDate decorator', () => {
describe('@MaxDate decorator', () => {
const maxDate = new Date('2099-12-31')

class Sample {
Expand Down Expand Up @@ -54,7 +54,10 @@ describe('maxDate decorator', () => {
}

const dynamicMeta = new CargoClassMetadata(DynamicMax.prototype)
const rule = dynamicMeta.getFieldMetadata('date').getValidators()?.find(v => v.type === 'maxDate')
const rule = dynamicMeta
.getFieldMetadata('date')
.getValidators()
?.find(v => v.type === 'maxDate')

expect(rule!.validate(new Date('2049-12-31'))).toBeNull()
expect(rule!.validate(new Date('2050-01-02'))).toBeInstanceOf(CargoFieldError)
Expand All @@ -67,7 +70,10 @@ describe('maxDate decorator', () => {
}

const customMeta = new CargoClassMetadata(CustomMessage.prototype)
const rule = customMeta.getFieldMetadata('date').getValidators()?.find(v => v.type === 'maxDate')
const rule = customMeta
.getFieldMetadata('date')
.getValidators()
?.find(v => v.type === 'maxDate')

const error = rule!.validate(new Date('2100-01-01'))
expect(error).toBeInstanceOf(CargoFieldError)
Expand Down
Loading
Loading