All files / src/objects enhancement_implementation.ts

87.27% Statements 48/55
75% Branches 9/12
83.33% Functions 5/6
87.27% Lines 48/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 4x 4x 1x 1x 1x 1x 1x 1x 1x           1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 2x 2x 1x 1x 1x 1x 1x 1x 3x     1x 1x 1x 1x 1x 1x 1x 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};
  }
}