diff --git a/client/src/actions/cities.ts b/client/src/actions/cities.ts
index 381d0a04236ec630e4cc0242235bc490567bd5a2..a54475c7cbd69b06db3476cd7d6c08ebd7739070 100644
--- a/client/src/actions/cities.ts
+++ b/client/src/actions/cities.ts
@@ -8,7 +8,15 @@ export const getCities = () => async (dispatch: AppDispatch) => {
     .then((res) => {
       dispatch({
         type: Types.SET_CITIES,
-        payload: res.data,
+        payload: res.data.items,
+      })
+      dispatch({
+        type: Types.SET_COMPETITIONS_TOTAL,
+        payload: res.data.total_count,
+      })
+      dispatch({
+        type: Types.SET_COMPETITIONS_COUNT,
+        payload: res.data.count,
       })
     })
     .catch((err) => console.log(err))
diff --git a/client/src/actions/competitions.ts b/client/src/actions/competitions.ts
index 35f12d31f556bce9a08ad722c811a922f191717b..a758fd635550306eecb09e8100d5e17cb09a8ce1 100644
--- a/client/src/actions/competitions.ts
+++ b/client/src/actions/competitions.ts
@@ -19,11 +19,11 @@ export const getCompetitions = () => async (dispatch: AppDispatch, getState: ()
     .then((res) => {
       dispatch({
         type: Types.SET_COMPETITIONS,
-        payload: res.data.competitions,
+        payload: res.data.items,
       })
       dispatch({
         type: Types.SET_COMPETITIONS_TOTAL,
-        payload: res.data.total,
+        payload: res.data.total_count,
       })
       dispatch({
         type: Types.SET_COMPETITIONS_COUNT,
diff --git a/client/src/actions/types.ts b/client/src/actions/types.ts
index d265a692c8583eb8f7d419cb2a513f8fd554b2b6..40e9430369e7314b77e7dcc133132e98de1f67f6 100644
--- a/client/src/actions/types.ts
+++ b/client/src/actions/types.ts
@@ -11,6 +11,8 @@ export default {
   SET_COMPETITIONS_TOTAL: 'SET_COMPETITIONS_TOTAL',
   SET_COMPETITIONS_COUNT: 'SET_COMPETITIONS_COUNT',
   SET_CITIES: 'SET_CITIES',
+  SET_CITIES_TOTAL: 'SET_CITIES_TOTAL',
+  SET_CITIES_COUNT: 'SET_CITIES_COUNT',
   AXIOS_GET: 'AXIOS_GET',
   AXIOS_GET_SUCCESS: 'AXIOS_GET_SUCCESS',
   AXIOS_GET_ERROR: 'AXIOS_GET_ERROR',
diff --git a/client/src/pages/admin/components/AddCompetition.test.tsx b/client/src/pages/admin/components/AddCompetition.test.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3455447bc8a487f9f9f70502e21e868ddc4cdbc7
--- /dev/null
+++ b/client/src/pages/admin/components/AddCompetition.test.tsx
@@ -0,0 +1,52 @@
+import { fireEvent, render, screen } from '@testing-library/react'
+import { mount } from 'enzyme'
+import React from 'react'
+import { Provider } from 'react-redux'
+import { BrowserRouter } from 'react-router-dom'
+import configureMockStore from 'redux-mock-store'
+import thunk from 'redux-thunk'
+import store from '../../../store'
+import AddCompetition from './AddCompetition'
+
+const middlewares = [thunk]
+const mockStore = configureMockStore(middlewares)
+
+fit('renders add competition', () => {
+  render(
+    <BrowserRouter>
+      <Provider store={store}>
+        <AddCompetition />
+      </Provider>
+    </BrowserRouter>
+  )
+})
+
+fit('it adds competitions', () => {
+  const cities = [
+    {
+      id: 1,
+      name: 'Link\u00f6ping',
+    },
+    {
+      id: 2,
+      name: 'Stockholm',
+    },
+  ]
+  const store = mockStore({ cities })
+  // console.log(store.getState())
+  const wrapper = mount(
+    <Provider store={store}>
+      <AddCompetition />
+    </Provider>
+  )
+  const newCompetitionButton = wrapper.find('button')
+  newCompetitionButton.simulate('click')
+  const nameField = screen.getByRole('textbox')
+  // const nameField = textFields.children().first()
+
+  // nameField.simulate('focus')
+  // nameField.simulate('change', { target: { value: 'Changed' } })
+  console.log(nameField)
+  fireEvent.click(nameField)
+  expect(wrapper.text().includes('2')).toBe(true) //TODO: check that SlideSettings exists
+})
diff --git a/client/src/pages/admin/components/AddCompetition.tsx b/client/src/pages/admin/components/AddCompetition.tsx
index 3bb54db01f3935c4028548ccff0044cdda174adb..bc06fdb28528103aa3c1be842023296fe692b4ac 100644
--- a/client/src/pages/admin/components/AddCompetition.tsx
+++ b/client/src/pages/admin/components/AddCompetition.tsx
@@ -38,7 +38,7 @@ const competitionSchema: Yup.SchemaOf<AddCompetitionFormModel> = Yup.object({
 const AddCompetition: React.FC = (props: any) => {
   const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null)
   const [selectedCity, setSelectedCity] = React.useState<City | undefined>()
-  const cities = useAppSelector((state) => state.cities)
+  const cities = useAppSelector((state) => state.cities.cities)
   const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
     setAnchorEl(event.currentTarget)
   }
diff --git a/client/src/pages/admin/components/CompetitionManager.tsx b/client/src/pages/admin/components/CompetitionManager.tsx
index c6803b0327dc48f11338d2e5c157744b5ba836bf..2acce64b8b11b33e089f15f8d34b1472de2b8898 100644
--- a/client/src/pages/admin/components/CompetitionManager.tsx
+++ b/client/src/pages/admin/components/CompetitionManager.tsx
@@ -40,7 +40,7 @@ const CompetitionManager: React.FC = (props: any) => {
   const competitions = useAppSelector((state) => state.competitions.competitions)
   const filterParams = useAppSelector((state) => state.competitions.filterParams)
   const competitionTotal = useAppSelector((state) => state.competitions.total)
-  const cities = useAppSelector((state) => state.cities)
+  const cities = useAppSelector((state) => state.cities.cities)
   const classes = useStyles()
   const noFilterText = 'Alla'
   const dispatch = useAppDispatch()
diff --git a/client/src/reducers/citiesReducer.ts b/client/src/reducers/citiesReducer.ts
index 871123d82d03f6b8faf149d79f2cc1c67300098f..1c9542ff0c6ec2059a56f1ff5b5ac58c046114c6 100644
--- a/client/src/reducers/citiesReducer.ts
+++ b/client/src/reducers/citiesReducer.ts
@@ -2,12 +2,31 @@ import { AnyAction } from 'redux'
 import Types from '../actions/types'
 import { City } from '../interfaces/City'
 
-const initialState: City[] = []
+interface CityState {
+  cities: City[]
+  total: number
+  count: number
+}
+const initialState: CityState = {
+  cities: [],
+  total: 0,
+  count: 0,
+}
 
 export default function (state = initialState, action: AnyAction) {
   switch (action.type) {
     case Types.SET_CITIES:
-      return action.payload as City[]
+      return { ...state, cities: action.payload as City[] }
+    case Types.SET_CITIES_TOTAL:
+      return {
+        ...state,
+        total: action.payload as number,
+      }
+    case Types.SET_CITIES_COUNT:
+      return {
+        ...state,
+        count: action.payload as number,
+      }
     default:
       return state
   }