diff --git a/admin/src/components/Federation/CommunityVisualizeItem.vue b/admin/src/components/Federation/CommunityVisualizeItem.vue
index c3c8e70cb..5b3d9bc8b 100644
--- a/admin/src/components/Federation/CommunityVisualizeItem.vue
+++ b/admin/src/components/Federation/CommunityVisualizeItem.vue
@@ -37,8 +37,8 @@
{{
$t('geo-coordinates.format', {
- latitude: location.coordinates[1],
- longitude: location.coordinates[0],
+ latitude: location.latitude,
+ longitude: location.longitude,
})
}}
@@ -166,7 +166,7 @@ export default {
return this.originalGmsApiKey !== this.gmsApiKey
},
isValidLocation() {
- return this.location && this.location.coordinates.length === 2
+ return this.location && this.location.latitude && this.location.longitude
},
},
methods: {
diff --git a/admin/src/components/input/Coordinates.spec.js b/admin/src/components/input/Coordinates.spec.js
index 25e73c554..21d1c3263 100644
--- a/admin/src/components/input/Coordinates.spec.js
+++ b/admin/src/components/input/Coordinates.spec.js
@@ -6,26 +6,26 @@ import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const localVue = global.localVue
-const i18n = new VueI18n({
- locale: 'en',
- messages: {
- en: {
- 'geo-coordinates.format': '{latitude}, {longitude}',
- },
- },
-})
+const mocks = {
+ $t: jest.fn((t, v) => {
+ if (t === 'geo-coordinates.format') {
+ return `${v.latitude}, ${v.longitude}`
+ }
+ return t
+ }),
+}
describe('Coordinates', () => {
let wrapper
const value = {
- type: 'Point',
- coordinates: [12.34, 56.78],
+ latitude: 56.78,
+ longitude: 12.34,
}
const createWrapper = (propsData) => {
return mount(Coordinates, {
localVue,
- i18n,
+ mocks,
propsData,
})
}
@@ -49,8 +49,10 @@ describe('Coordinates', () => {
await latitudeInput.setValue('34.56')
await longitudeInput.setValue('78.90')
- expect(wrapper.vm.latitude).toBe('34.56')
- expect(wrapper.vm.longitude).toBe('78.90')
+ expect(wrapper.vm.inputValue).toStrictEqual({
+ latitude: 34.56,
+ longitude: 78.9,
+ })
})
it('emits input event with updated values', async () => {
@@ -60,46 +62,28 @@ describe('Coordinates', () => {
await latitudeInput.setValue('34.56')
expect(wrapper.emitted().input).toBeTruthy()
expect(wrapper.emitted().input[0][0]).toEqual({
- type: 'Point',
- coordinates: [12.34, 34.56],
+ latitude: 34.56,
+ longitude: 12.34,
})
await longitudeInput.setValue('78.90')
expect(wrapper.emitted().input).toBeTruthy()
expect(wrapper.emitted().input[1][0]).toEqual({
- type: 'Point',
- coordinates: [78.9, 34.56],
+ latitude: 34.56,
+ longitude: 78.9,
})
})
- it('updates latitudeLongitude when latitude or longitude changes', async () => {
- const latitudeInput = wrapper.find('#home-community-latitude')
- const longitudeInput = wrapper.find('#home-community-longitude')
-
- await latitudeInput.setValue('34.56')
- await longitudeInput.setValue('78.90')
-
- expect(wrapper.vm.latitudeLongitude).toBe('34.56, 78.90')
- })
-
it('splits coordinates correctly when entering in latitudeLongitude input', async () => {
const latitudeLongitudeInput = wrapper.find('#home-community-latitude-longitude-smart')
await latitudeLongitudeInput.setValue('34.56, 78.90')
await latitudeLongitudeInput.trigger('input')
- expect(wrapper.vm.latitude).toBe(34.56)
- expect(wrapper.vm.longitude).toBe(78.9)
- })
-
- it('sets inputValue to null if coordinates are invalid', async () => {
- const latitudeInput = wrapper.find('#home-community-latitude')
- const longitudeInput = wrapper.find('#home-community-longitude')
-
- await latitudeInput.setValue('invalid')
- await longitudeInput.setValue('78.90')
-
- expect(wrapper.vm.inputValue).toBeNull()
+ expect(wrapper.vm.inputValue).toStrictEqual({
+ latitude: 34.56,
+ longitude: 78.9,
+ })
})
it('validates coordinates correctly', async () => {
diff --git a/admin/src/components/input/Coordinates.vue b/admin/src/components/input/Coordinates.vue
index 699ac29ea..b71e5d9d4 100644
--- a/admin/src/components/input/Coordinates.vue
+++ b/admin/src/components/input/Coordinates.vue
@@ -11,7 +11,7 @@
:description="$t('geo-coordinates.latitude-longitude-smart.describe')"
>