Commit 6a84948c authored by Tristan Read's avatar Tristan Read 💬
Browse files

fix(status icon): Handle parallel completion requests

parent 3f798f9a
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -114,6 +114,20 @@ describe('Code suggestions state manager', () => {
    });
  });

  describe('Loading state', () => {
    it('handles parallel operations', () => {
      stateManager.setLoading(true);
      stateManager.setLoading(true);
      stateManager.setLoading(false);

      expect(stateManager.getVisibleState()).toBe(VisibleCodeSuggestionsState.LOADING);

      stateManager.setLoading(false);

      expect(stateManager.getVisibleState()).toBe(VisibleCodeSuggestionsState.READY);
    });
  });

  describe('isDisabledByUser', () => {
    let disabledByUserListener: jest.Func;

+6 −2
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ export class CodeSuggestionsStateManager {
  // boolean flags indicating temporary states
  #isInErrorState = false;

  #isLoading = false;
  #isLoading = 0;
  // //////////

  #subscriptions: vscode.Disposable[] = [];
@@ -121,7 +121,11 @@ export class CodeSuggestionsStateManager {
  });

  setLoading = this.#updateStateWrapper(isLoading => {
    this.#isLoading = isLoading;
    if (isLoading) {
      this.#isLoading += 1;
    } else {
      this.#isLoading -= 1;
    }
  });

  setTemporaryDisabled = this.#updateStateWrapper(isDisabled => {