All files / src/app/core/pipes variation-attribute.pipe.ts

88.88% Statements 8/9
81.81% Branches 9/11
100% Functions 3/3
88.88% Lines 8/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321x 1x 1x                   1x 8x     5x       7x       7x              
import { formatNumber } from '@angular/common';
import { Pipe, PipeTransform } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
 
import { VariationAttribute } from 'ish-core/models/product-variation/variation-attribute.model';
 
/**
 * Pipe
 *
 * Used on a variation attribute (of type VariationAttribute), this pipe will return the corresponding display (string) value, considering the current locale for number attribute values.
 */
@Pipe({ name: 'ishVariationAttribute', pure: false })
export class VariationAttributePipe implements PipeTransform {
  constructor(private translateService: TranslateService) {}
 
  private toDecimal(val: number): string {
    return formatNumber(val, this.translateService.currentLang);
  }
 
  transform(attr: VariationAttribute): string {
    Iif (!this.translateService.currentLang) {
      return 'undefined';
    }
 
    return typeof attr?.value === 'object'
      ? `${this.toDecimal(attr.value.value)}\xA0${attr.value.unit}`
      : typeof attr?.value === 'number'
      ? this.toDecimal(attr.value)
      : attr?.value || 'undefined';
  }
}