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
18 changes: 14 additions & 4 deletions __TESTS__/unit/actions/Quality.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
it('Creates a cloudinaryURL with quality:best', () => {
const url = new TransformableImage()
.setConfig(CONFIG_INSTANCE)
.delivery(Delivery.quality(Quality.best()))
.delivery(Delivery.quality(Quality.autoBest()))
.setPublicID('sample')
.toURL();

Expand All @@ -43,7 +43,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
it('Creates a cloudinaryURL with quality:eco', () => {
const url = new TransformableImage()
.setConfig(CONFIG_INSTANCE)
.delivery(Delivery.quality(Quality.eco()))
.delivery(Delivery.quality(Quality.autoEco()))
.setPublicID('sample')
.toURL();

Expand All @@ -53,7 +53,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
it('Creates a cloudinaryURL with quality:good', () => {
const url = new TransformableImage()
.setConfig(CONFIG_INSTANCE)
.delivery(Delivery.quality(Quality.good()))
.delivery(Delivery.quality(Quality.autoGood()))
.setPublicID('sample')
.toURL();

Expand All @@ -63,7 +63,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
it('Creates a cloudinaryURL with quality:low', () => {
const url = new TransformableImage()
.setConfig(CONFIG_INSTANCE)
.delivery(Delivery.quality(Quality.low()))
.delivery(Delivery.quality(Quality.autoLow()))
.setPublicID('sample')
.toURL();

Expand Down Expand Up @@ -119,4 +119,14 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {

expect(url).toBe('http://res.cloudinary.com/demo/image/upload/q_75:420/sample');
});

it('Sets Quanitzation level', () => {
const url = new TransformableImage()
.setConfig(CONFIG_INSTANCE)
.delivery(Delivery.quality('75').quantization(123))
.setPublicID('sample')
.toURL();

expect(url).toBe('http://res.cloudinary.com/demo/image/upload/q_75:qmax_123/sample');
});
});
10 changes: 10 additions & 0 deletions src/actions/delivery/quality.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,18 @@ class QualityAction extends DeliveryAction {
chromaSubSampling(type: 420 | 444 | number): this {
const qualityWithSubSampling = new QualifierValue([this.qualityValue, type]);
qualityWithSubSampling.setDelimiter(':');

// We either have chroma or quantization, but not both
return this.addQualifier(new Qualifier('q', qualityWithSubSampling));
}

quantization(val:number) {
const qualityWithQuantization = new QualifierValue([this.qualityValue, `qmax_${val}`]);
qualityWithQuantization.setDelimiter(':');

// We either have chroma or quantization, but not both
return this.addQualifier(new Qualifier('q', qualityWithQuantization));
}
}

/**
Expand Down
8 changes: 4 additions & 4 deletions src/values/quality/Quality.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@ export function auto():string { return 'auto';}
* @memberOf Values.QualityValues
* @return {string}
*/
export function best():string { return 'auto:best';}
export function autoBest():string { return 'auto:best';}

/**
* @description Quality eco
* @memberOf Values.QualityValues
* @return {string}
*/
export function eco():string { return 'auto:eco';}
export function autoEco():string { return 'auto:eco';}

/**
* @description Quality good
* @memberOf Values.QualityValues
* @return {string}
*/
export function good():string { return 'auto:good';}
export function autoGood():string { return 'auto:good';}

/**
* @description Quality low
* @memberOf Values.QualityValues
* @return {string}
*/
export function low():string { return 'auto:low';}
export function autoLow():string { return 'auto:low';}

/**
* @description Quality jpegmini
Expand Down