From 66c5b2c151c80b2ec837f633ef406b3b34256c29 Mon Sep 17 00:00:00 2001 From: SergeyVS Date: Wed, 6 Mar 2024 14:10:34 +0300 Subject: [PATCH 01/24] feat(update MakeFile): --- proxy-ui-app/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-ui-app/Makefile b/proxy-ui-app/Makefile index 12fd034..5513407 100644 --- a/proxy-ui-app/Makefile +++ b/proxy-ui-app/Makefile @@ -44,4 +44,4 @@ ifeq ($(commit),) $(error mn is not set) endif make prehook - git add . && git commit -m "feat($(commit)):" && GIT_SSL_NO_VERIFY=true git push \ No newline at end of file + git add . && git commit -m "feat($(commit)):" && git push \ No newline at end of file From 25e3775117a0008ad9c7bb22010dd3f1c7b59d6e Mon Sep 17 00:00:00 2001 From: SergeyVS Date: Thu, 7 Mar 2024 16:45:20 +0300 Subject: [PATCH 02/24] feat(added Services of Services, updated store logic for services, updated layout and logic in components with services, added logic for enable/disable service in ServiceCard componemt, added tests for services store and Services of Services, with mock axios): --- proxy-ui-app/tests/store/services.test.js | 37 +++++++++++++++-------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/proxy-ui-app/tests/store/services.test.js b/proxy-ui-app/tests/store/services.test.js index 1341be4..cc216ad 100644 --- a/proxy-ui-app/tests/store/services.test.js +++ b/proxy-ui-app/tests/store/services.test.js @@ -1,6 +1,7 @@ -import {describe, expect, beforeEach} from 'vitest' +import {describe, expect, beforeEach, it} from 'vitest' import {createStore} from 'vuex' import {store} from '@store/modules/proxy/index.js' +// import {store as services} from '@store/modules/proxy/index.js' import {addedSite, updatedSite, removedNewSite, deletedSite} from '@store/modules/proxy/helpers.js' const sites = store.state.sites @@ -24,6 +25,13 @@ const breakSavingSite = store.actions.breakSavingSite const removeSite = store.actions.removeSite const resetStore = store.actions.resetStore +// const store = createStore({ +// plugins: [], +// modules: { +// services +// }, +// }) + const defaultSites = [ { "id": 1, "created_at": "2024-02-22T17:08:37.715772388+03:00", @@ -33,6 +41,7 @@ const defaultSites = [ { "port": 9965, "proxy_ip": "172.25.78.153", "site_ip": "172.25.78.153", + "device_ip": "172.25.78.153", "internet_uri": "localhost", "description": "localhost", "is_online": true @@ -46,6 +55,7 @@ const defaultSites = [ { "port": 3645, "proxy_ip": "172.25.78.151", "site_ip": "172.25.78.151", + "device_ip": "172.25.78.151", "internet_uri": "", "description": "create... upd...", "is_online": true @@ -59,6 +69,7 @@ const defaultSites = [ { "port": 3645, "proxy_ip": "172.25.78.151", "site_ip": "172.25.78.151", + "device_ip": "172.25.78.151", "internet_uri": "", "description": "new updated...", "is_online": false @@ -96,13 +107,13 @@ const mockStore = createStore({ }) describe('mutations', () => { - //eslint-disable-next-line no-undef + it('Set to empty Services', () => { const state = { sites: sites } setSites(state, null) expect(state.sites).to.equal(null) }) - //eslint-disable-next-line no-undef + it('Add new Service', () => { const newSite = { "id": 34, @@ -125,12 +136,12 @@ describe('mutations', () => { }) describe('actions', () => { - //eslint-disable-next-line no-undef + it('action addNewSiteLayout - added fields for new Service', async () => { mockStore.dispatch('addNewSiteLayout') expect(mockStore.state.sites[0]).toMatchObject({id: -1}) }) - //eslint-disable-next-line no-undef + it('action editSelectedSite - edited fields values in selected site', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -141,7 +152,7 @@ describe('actions', () => { mockStore.dispatch('editSelectedSite', {key: 'description', value: 'updated'}) expect(mockStore.state.selectedSite).toMatchObject({name: 'edited test name', port: 5555, description: 'updated'}) }) - //eslint-disable-next-line no-undef + it('action editSelectedSite - edited fields empty values in selected site', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -152,7 +163,7 @@ describe('actions', () => { mockStore.dispatch('editSelectedSite', {key: 'description', value: ''}) expect(mockStore.state.selectedSite).toMatchObject({name: '', port: '', description: ''}) }) - //eslint-disable-next-line no-undef + it('action breakSavingSite - cleared selected site, replaced to default status routesState', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -166,7 +177,7 @@ describe('actions', () => { expect(mockStore.state.selectedSite).toBeNull() expect(mockStore.state.routesState).toBe('await') }) - //eslint-disable-next-line no-undef + it('action resetStore - cleared all values in store', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -193,7 +204,7 @@ describe('actions', () => { }) describe('helpers', () => { - //eslint-disable-next-line no-undef + it('added new site', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -220,7 +231,7 @@ describe('helpers', () => { expect(addedNewSite).toMatchObject(newSite) }) - //eslint-disable-next-line no-undef + it('updated site', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -249,7 +260,7 @@ describe('helpers', () => { expect(updatedSiteToStore).not.toBe(undefined) expect(updatedSiteToStore).toMatchObject(editedSite) }) - //eslint-disable-next-line no-undef + it('updated site - empty params', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -278,7 +289,7 @@ describe('helpers', () => { expect(updatedSiteToStore).not.toBe(undefined) expect(updatedSiteToStore).toMatchObject(editedSite) }) - //eslint-disable-next-line no-undef + it('removed new site before saving to server', async () => { beforeEach(() => { mockStore.dispatch('resetStore') @@ -296,7 +307,7 @@ describe('helpers', () => { const removedSiteToStore = mockStore.state.sites.find(site => site.id === -1) expect(removedSiteToStore).toBe(undefined) // removed site to be undefined in array sites to store }) - //eslint-disable-next-line no-undef + it('deleted selected site before saving to server', async () => { beforeEach(() => { mockStore.dispatch('resetStore') From 653ec7b3726e2a20fc9eb60db6c877ffde811db5 Mon Sep 17 00:00:00 2001 From: SergeyVS Date: Thu, 7 Mar 2024 16:53:52 +0300 Subject: [PATCH 03/24] added Services of Services, updated store logic for services, updated layout and logic in components with services, added logic for enable/disable service in ServiceCard componemt, added tests for services store and Services of Services, with mock axios --- .../adapters/adapterOfServices/Services.js | 19 +- .../src/components/1_atoms/AppPageHeader.vue | 29 +- ...NewSiteButton.vue => NewServiceButton.vue} | 8 +- .../EditServiceCard.vue} | 37 +-- .../ServiceCard.vue} | 86 +++-- .../3_organisms/ServicesList/ServicesList.vue | 68 ++++ .../3_organisms/SiteList/SiteList.vue | 68 ---- .../SitesManagerPage/SitesManagerPage.vue | 21 +- .../services/serviceOfServices/Services.js | 59 +++- .../src/services/serviceOfServices/helpers.js | 32 ++ .../src/store/modules/services/index.js | 121 +++---- users-manage/tests/store/services.test.js | 303 +++++++++++++----- 12 files changed, 569 insertions(+), 282 deletions(-) rename users-manage/src/components/1_atoms/{NewSiteButton.vue => NewServiceButton.vue} (79%) rename users-manage/src/components/3_organisms/{SiteList/SiteListEditCard.vue => ServicesList/EditServiceCard.vue} (73%) rename users-manage/src/components/3_organisms/{SiteList/SiteListSiteCard.vue => ServicesList/ServiceCard.vue} (66%) create mode 100644 users-manage/src/components/3_organisms/ServicesList/ServicesList.vue delete mode 100644 users-manage/src/components/3_organisms/SiteList/SiteList.vue create mode 100644 users-manage/src/services/serviceOfServices/helpers.js diff --git a/users-manage/src/adapters/adapterOfServices/Services.js b/users-manage/src/adapters/adapterOfServices/Services.js index 4fcbbe4..fcd28a5 100644 --- a/users-manage/src/adapters/adapterOfServices/Services.js +++ b/users-manage/src/adapters/adapterOfServices/Services.js @@ -15,6 +15,20 @@ const config = { site_ip: "device_ip", } +const configToServer = { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + name: "name", + port: "port", + proxy_ip: "proxy_ip", + internet_uri: "internet_uri", + description: "description", + is_online: "is_online", + device_ip: "site_ip", +} + class Services { /** @@ -25,6 +39,7 @@ class Services { constructor(apiAddr) { this.apiAddr = apiAddr this.config = config + this.configToServer = configToServer } /** @@ -46,7 +61,7 @@ class Services { async createService(payload) { let newService = [] const updatedPort = parseFloat(payload.port) - const updatedService = {...convertObject(payload, {config: this.config}), port: updatedPort} + const updatedService = {...convertObject(payload, {config: this.configToServer}), port: updatedPort} await post(`${this.apiAddr}/servers`, updatedService).then(res => { newService = convertObject(res.value, {config: this.config}) }).catch(err => { @@ -64,7 +79,7 @@ class Services { async updateService(payload) { let resService = [] const updatedPort = parseFloat(payload.port) - const updatedService = {...convertObject(payload, {config: this.config}), port: updatedPort} + const updatedService = {...convertObject(payload, {config: this.configToServer}), port: updatedPort} if (payload.id) { await put(`${this.apiAddr}/servers`, updatedService, payload.id).then(res => { resService = convertObject(res.value, {config: this.config}) diff --git a/users-manage/src/components/1_atoms/AppPageHeader.vue b/users-manage/src/components/1_atoms/AppPageHeader.vue index f059ebc..c0b8e60 100644 --- a/users-manage/src/components/1_atoms/AppPageHeader.vue +++ b/users-manage/src/components/1_atoms/AppPageHeader.vue @@ -1,12 +1,33 @@ diff --git a/users-manage/src/components/1_atoms/NewSiteButton.vue b/users-manage/src/components/1_atoms/NewServiceButton.vue similarity index 79% rename from users-manage/src/components/1_atoms/NewSiteButton.vue rename to users-manage/src/components/1_atoms/NewServiceButton.vue index 6267b5a..6fa9502 100644 --- a/users-manage/src/components/1_atoms/NewSiteButton.vue +++ b/users-manage/src/components/1_atoms/NewServiceButton.vue @@ -1,8 +1,8 @@ @@ -26,7 +28,7 @@ export default {