/* eslint-disable import-x/no-duplicates */ /* eslint-disable no-new */ import BusboyDefault, { Busboy, BusboyFileStream } from '.' import { expect } from 'tstyche' import BusboyESM from '.' expect(new BusboyESM({ headers: { 'content-type': 'foo' } })).type.toBe< InstanceType >() expect(new Busboy({ headers: { 'content-type': 'foo' } })).type.toBe< InstanceType >() expect(BusboyDefault).type.not.toBeConstructableWith({}) const busboy = BusboyDefault({ headers: { 'content-type': 'foo' } }) new BusboyDefault({ headers: { 'content-type': 'foo' } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, highWaterMark: 1000 }) new BusboyDefault({ headers: { 'content-type': 'foo' }, fileHwm: 1000 }) new BusboyDefault({ headers: { 'content-type': 'foo' }, defCharset: 'utf8' }) new BusboyDefault({ headers: { 'content-type': 'foo' }, preservePath: true }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { fieldNameSize: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { fieldSize: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { fields: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { fileSize: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { files: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { parts: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { headerPairs: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, limits: { headerSize: 200 } }) new BusboyDefault({ headers: { 'content-type': 'foo' }, isPartAFile: (fieldName, contentType, fileName) => fieldName === 'my-special-field' || fileName !== 'not-so-special.txt' }) new BusboyDefault({ headers: { 'content-type': 'foo' }, isPartAFile: (fieldName, contentType, fileName) => fileName !== undefined }) busboy.addListener('file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() }) busboy.addListener( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.addListener('partsLimit', () => {}) busboy.addListener('filesLimit', () => {}) busboy.addListener('fieldsLimit', () => {}) busboy.addListener('error', (e) => { expect(e).type.toBe() }) busboy.addListener('finish', () => {}) // test fallback busboy.on('foo', (foo) => { expect(foo).type.toBe() }) busboy.on(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.on('file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() }) busboy.on( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.on('partsLimit', () => {}) busboy.on('filesLimit', () => {}) busboy.on('fieldsLimit', () => {}) busboy.on('error', (e) => { expect(e).type.toBe() }) busboy.on('finish', () => {}) // test fallback busboy.on('foo', (foo) => { expect(foo).type.toBe() }) busboy.on(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.once('file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() }) busboy.once( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.once('partsLimit', () => {}) busboy.once('filesLimit', () => {}) busboy.once('fieldsLimit', () => {}) busboy.once('error', (e) => { expect(e).type.toBe() }) busboy.once('finish', () => {}) // test fallback busboy.once('foo', (foo) => { expect(foo).type.toBe() }) busboy.once(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.removeListener( 'file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.removeListener( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.removeListener('partsLimit', () => {}) busboy.removeListener('filesLimit', () => {}) busboy.removeListener('fieldsLimit', () => {}) busboy.removeListener('error', (e) => { expect(e).type.toBe() }) busboy.removeListener('finish', () => {}) // test fallback busboy.removeListener('foo', (foo) => { expect(foo).type.toBe() }) busboy.removeListener(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.off('file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() }) busboy.off( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.off('partsLimit', () => {}) busboy.off('filesLimit', () => {}) busboy.off('fieldsLimit', () => {}) busboy.off('error', (e) => { expect(e).type.toBe() }) busboy.off('finish', () => {}) // test fallback busboy.off('foo', (foo) => { expect(foo).type.toBe() }) busboy.off(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.prependListener( 'file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.prependListener( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.prependListener('partsLimit', () => {}) busboy.prependListener('filesLimit', () => {}) busboy.prependListener('fieldsLimit', () => {}) busboy.prependListener('error', (e) => { expect(e).type.toBe() }) busboy.prependListener('finish', () => {}) // test fallback busboy.prependListener('foo', (foo) => { expect(foo).type.toBe() }) busboy.prependListener(Symbol('foo'), (foo) => { expect(foo).type.toBe() }) busboy.prependOnceListener( 'file', (fieldname, file, filename, encoding, mimetype) => { expect(fieldname).type.toBe() expect(file).type.toBe() expect(filename).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.prependOnceListener( 'field', (fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) => { expect(fieldname).type.toBe() expect(val).type.toBe() expect(fieldnameTruncated).type.toBe() expect(valTruncated).type.toBe() expect(encoding).type.toBe() expect(mimetype).type.toBe() } ) busboy.prependOnceListener('partsLimit', () => {}) busboy.prependOnceListener('filesLimit', () => {}) busboy.prependOnceListener('fieldsLimit', () => {}) busboy.prependOnceListener('error', (e) => { expect(e).type.toBe() }) busboy.prependOnceListener('finish', () => {}) // test fallback busboy.prependOnceListener('foo', (foo) => { expect(foo).type.toBe() }) busboy.prependOnceListener(Symbol('foo'), (foo) => { expect(foo).type.toBe() })