diff --git a/src/store.js b/src/store.js index dbc0a3f..be2c1f6 100644 --- a/src/store.js +++ b/src/store.js @@ -66,7 +66,7 @@ const store = new Vuex.Store({ state.websocket.disconnectedSince = Date.now(); }, set_apps(state, apps) { - state.apps = apps; + state.apps = [...apps].sort((a, b) => a.name.localeCompare(b.name)); }, set_terminals(state, terminals) { state.terminals = terminals; diff --git a/tests/unit/store.spec.js b/tests/unit/store.spec.js index e2ea51b..4b666c6 100644 --- a/tests/unit/store.spec.js +++ b/tests/unit/store.spec.js @@ -44,3 +44,14 @@ describe('handle_websocket_message', () => { expect(httpGet).not.toHaveBeenCalled(); }); }); + +describe('set_apps', () => { + test('sorts apps by name', () => { + store.commit('set_apps', [ + {name: 'zulu'}, + {name: 'alpha'}, + {name: 'Mike'}, + ]); + expect(store.state.apps.map(a => a.name)).toEqual(['alpha', 'Mike', 'zulu']); + }); +});