All files / src/objects enhancement_implementation.ts

90.9% Statements 50/55
71.87% Branches 23/32
83.33% Functions 5/6
90.9% Lines 50/55

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 561x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 1x 1x 3x 3x 3x 1x 1x           1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 1x 1x 7x 4x 4x 3x 3x 3x 3x 3x 3x 7x 2x 2x 1x 7x 7x 7x 7x 7x 7x 1x  
import {AbstractObject} from "./_abstract_object";
 
export class EnhancementImplementation extends AbstractObject {
  private parsedXML: {
    className?: string,
    description?: string,
  } | undefined;
 
  public getType(): string {
    return "ENHO";
  }
 
  public setDirty(): void {
    this.parsedXML = undefined;
    super.setDirty();
  }
 
  public getAllowedNaming() {
    return {
      maxLength: 30,
      allowNamespace: true,
    };
  }
 
  public getClassName(): string | undefined {
    this.parse();
    return this.parsedXML?.className;
  }
 
  public getDescription(): string | undefined {
    this.parse();
    return this.parsedXML?.description;
  }
 
  public parse() {
    if (this.parsedXML) {
      return {updated: false, runtime: 0};
    }
 
    const start = Date.now();
    this.parsedXML = {};
    const parsed = super.parseRaw2();
    if (parsed === undefined
        || parsed.abapGit === undefined
        || parsed.abapGit?.["asx:abap"]?.["asx:values"] === undefined) {
      return {updated: false, runtime: 0};
    }
 
    this.parsedXML.className = parsed.abapGit?.["asx:abap"]?.["asx:values"]?.CLASS;
    this.parsedXML.description = parsed.abapGit?.["asx:abap"]?.["asx:values"]?.SHORTTEXT;
 
    const end = Date.now();
    return {updated: true, runtime: end - start};
  }
}