All files / tests/store/modules auth.ts

23.68% Statements 9/38
100% Branches 0/0
0% Functions 0/8
24.32% Lines 9/37
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 841x   1x         1x   1x       1x           1x             1x                                               1x                                                 1x                
const debug = process.env.NODE_ENV !== "production";
 
const state = {
  token: "",
  status: ""
};
 
const validateToken = (token: string) => token === "login-token";
 
const getters = {
  isAuthenticated: (state: any) => validateToken(state.token)
};
 
const apiLogin = (): Promise<{ token: string }> =>
  new Promise(resolve => {
    setTimeout(() => {
      resolve({ token: "login-token" });
    }, 200);
  });
const apiLogout = () =>
  new Promise(resolve => {
    setTimeout(() => {
      resolve();
    }, 200);
  });
 
const actions = {
  async login({ commit }: { commit: any }) {
    try {
      commit("setStatusLoading");
      const { token } = await apiLogin();
      validateToken(token);
      commit("setStatusSuccess", { token });
    } catch (e) {
      console.error(e);
      commit("setStatusError");
    }
  },
  async logout({ commit }: { commit: any }) {
    try {
      commit("setStatusLoading");
      await apiLogout();
      commit("setStatusLoggedOut");
    } catch (e) {
      console.error(e);
      commit("setStatusError");
    }
  }
};
 
const mutations = {
  setStatusLoading(state: any) {
    state.status = "loading";
  },
 
  setStatusSuccess(state: any, { token }: { token: string }) {
    state.status = "success";
    state.token = token;
  },
 
  setToken(state: any, { token }: { token: string }) {
    state.token = token;
  },
 
  setStatusError(state: any) {
    state.status = "error";
    state.token = "";
  },
 
  setStatusLoggedOut(state: any) {
    state.status = "success";
    state.token = "";
  }
};
 
export default {
  state,
  getters,
  actions,
  mutations,
  namespaced: true,
  debug
};