Skip to content

Commit

Permalink
Merge pull request #87 from Relewise/feat/include-disabled-variants
Browse files Browse the repository at this point in the history
Feat: Optionally include disabled variants in ProductHasVariantsFilter
  • Loading branch information
mzanoni authored Jan 6, 2025
2 parents 2e22cde + f68ea53 commit 65d8dc4
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion packages/client/src/builders/filterBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ export class FilterBuilder {
* @param options - Optional settings for the filter.
* @returns The FilterBuilder instance for chaining.
*/
public addProductHasVariantsFilter(lowerBound?: number, upperBound?: number, negated: boolean = false, options?: FilterOptions): this {
public addProductHasVariantsFilter(lowerBound?: number, upperBound?: number, negated: boolean = false, options?: FilterOptions & { includeDisabled?: boolean }): this {
this.productFilterBuilder.addProductHasVariantsFilter(lowerBound, upperBound, negated, options);
return this;
}
Expand Down
4 changes: 3 additions & 1 deletion packages/client/src/builders/filters/productFilterBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ export class ProductFilterBuilder extends FilterBuilderBase<ProductFilterBuilder
* @param options - Optional settings for the filter.
* @returns The ProductFilterBuilder instance for chaining.
*/
public addProductHasVariantsFilter(lowerBound?: number, upperBound?: number, negated: boolean = false, options?: FilterOptions): this {
public addProductHasVariantsFilter(lowerBound?: number, upperBound?: number, negated: boolean = false, options?: FilterOptions & { includeDisabled?: boolean }): this {
const internalSettingsBuilder = new FilterSettingsBuilder();
options?.filterSettings?.(internalSettingsBuilder);

Expand All @@ -165,7 +165,9 @@ export class ProductFilterBuilder extends FilterBuilderBase<ProductFilterBuilder
},
negated: negated,
settings: internalSettingsBuilder.build(),
includeDisabled: options?.includeDisabled ?? false
};

this.filters.push(filter);

return this;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { UserFactory } from '../../../../src/factory';
import { ProductSearchBuilder } from '../../../../src/builders/search';
import { test, expect } from '@jest/globals'
import { ProductSearchRequest } from '../../../../src/models/data-contracts';
import { ProductHasVariantsFilter, ProductSearchRequest } from '../../../../src/models/data-contracts';

function baseBuilder() {
return new ProductSearchBuilder({
Expand Down Expand Up @@ -132,4 +132,14 @@ test('searchHightlighting', () => {
expect(subject.settings?.highlight?.limit.maxSnippetsPerEntry).toBe(2);
expect(subject.settings?.highlight?.limit.maxSnippetsPerField).toBe(3);
expect(subject.settings?.highlight?.shape.includeOffsets).toBe(true);
});

test('includeDisabled in ProductHasVariantsFilter', () => {
const subject: ProductSearchRequest = baseBuilder()
.filters(f => f.addProductHasVariantsFilter(1, 9999, false, { includeDisabled: true }))
.build();

const filterFromRequest = (subject.filters?.items?.[0] as ProductHasVariantsFilter) ?? null;
expect(filterFromRequest).not.toBeNull();
expect(filterFromRequest!.includeDisabled).toBe(true);
});

0 comments on commit 65d8dc4

Please sign in to comment.