Code coverage report for src/BreakingChangesNotifier.ts

# All files / src BreakingChangesNotifier.ts

100% Statements 14/14
91.67% Branches 11/12
100% Functions 6/6
100% Lines 14/14

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
    431x
    1x

    1x

    1x
    1x

    1x
    4x

    4x

    3x

    3x
    2x

    4x

    4x

    4x

     import * as vscode from 'vscode';
    import Messages from './Messages';

    const EXTENSION_ID = 'brapifra.phpserver';

    enum GlobalStateField {
      BREAKING_CHANGES_DISMISSED = 'BREAKING_CHANGES_DISMISSED',
    }

    export default class BreakingChangesNotifier {
      constructor(public globalState: vscode.Memento) {}

      notifyIfRequired() {
        if (
          this.doesCurrentVersionContainBreakingChanges() &&
          !this.wasBreakingChangesWarningDismissed()
        ) {
          vscode.window
            .showInformationMessage(Messages.BROWSER_BREAKING_CHANGES, Messages.OK)
            .then((result) => {
              if (result === Messages.OK)
                this.globalState.update(
                  GlobalStateField.BREAKING_CHANGES_DISMISSED,
                  true
                );
            });
        }
      }

      private doesCurrentVersionContainBreakingChanges(): boolean {
        const extension = vscode.extensions.getExtension(EXTENSION_ID);

        return extension?.packageJSON.version >= '3.0.0';
      }

      private wasBreakingChangesWarningDismissed() {
        return this.globalState.get(
          GlobalStateField.BREAKING_CHANGES_DISMISSED,
          false
        );
      }
    }