# DeviceOn/BI Portal RD Test scenario 2021/07~2021/09
---
###### tags: `DeviceOnBI`
## 2021/09/03
### Tingwei
#### Merge 1.02 to develop
**Purpose**
1. Merge 1.02 to develop
**Test**
1. test `npm run dev`
- [x] Login -> upload image
## 2021/09/03
### Tingwei
#### [Change] Notification message duration, etc
**Purpose**
1. [Change] Notification message duration
2. [Change][SSO] Error message shows in card.
**Test**
1. test notication
- [x] Success
- [x] Warning
- [x] Error
1. sso error message
- [x] invlaid account
- [x] invalid password
- [x] lock
- [x] network disconnect
## 2021/08/31
### Tingwei
#### [Change]Image Compress, etc.
**Purpose**
1. [Change]Image Compress.
2. [Change]Integrate profile and menu. Move Profile Upload Image API function and Profile Delete Image API function to objectProfile.vue.
3. [Change]Correct Upload Image Dialog lang from its all parent components
4. [Change][Profile]Comment Unused group profile & parameter profile code
5. [Change]Delete unused code from nodepageBI.vue.
6. [Change]Delete unused `#uploadImage` CSS from formulaCheck.vue.
7. [Change]Delete unused "import imageForDropDown.vue" from group.vue
8. [Change]Comment unused "import editUser.vue" in pageUser.vue
9. [Fix]Change fit of User image to "cover" in user list of pageUser.vue
10. [Change]Delete unused "import uploadImage2.vue" from userInfoPage.vue
11. merge develop to this branch
**Test**
1. uploadImage component
- [x] image size > 5MB
- [x] If origin svg base64 string length < png base64 string length, use svg
- [x] If origin svg base64 string length > png base64 string length, use png
2. profile
- [x] Long side 640
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Create profile -> upload image -> save
- [x] -> Edit a profile -> change image -> save
- [x] -> Edit a profile which contains an image -> change image -> cancel -> re-edit the profile -> check image
- [x] -> Edit a profile -> delete image -> save
- [x] -> Edit a profile whichs owner is another person, and it contains an image -> Save As Profile -> chech image
- [x] -> Edit the saved as profile -> change image -> check whether the image is changed and the image of the original profile is not changed
- [x] -> Edit the saved as profile -> delete image -> check whether the image is deleted and the image of the original profile is not deleted
3. menu dialog
- [x] Long side 200
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
4. group dialog
- [x] Long side 640
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
5. object dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
6. My Account page
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the default lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
- [x] Image covers the image div area
7. Device SCADA/EdgeLink dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
8. Device ADAM/TPC/WISE/UNO dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
9. Page User -> create user dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Image covers the image div area
10. User Management -> Edit user dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
- [x] Image covers the image div area
11. Advanced Setting -> Edit SPM dialog
- [x] Long side 268
- [x] Lang of Upload Image Dialog is the same as the tab lang
- [x] Save with image uploading
- [x] Save with image changing
- [x] Save with image deleting
- [x] Image covers the image div area
12. Below unused files change uploadImage2.vue to new uploadImage.vue without any testing
- createUser_new.vue
- editUser_new.vue
- uploadJSONfileDash.vue
- commonNewDevice.vue
## 2021/08/25
### Alice
#### feature/forwarding-page-fix
**Purpose**
1. [pageForwarding][fix] fix Rows Per Page 1 after switch one of tabs rule is null
**Test**
1. test for pageForwarding
- [x] add 11 rule in forwarding -> change tab to Authentication List(0) -> chenage tab to Forwarding Rule List -> check Forwarding Rule List is 10
- [x] add 11 rule in authentication -> change tab to Forwarding Rule List(0) -> chenage tab to Authentication List -> check Authentication List is 10
### Tingwei
#### [Change] Notification message UI, etc.
**Purpose**
1. [Change] Notification message UI and trigger by util.notify method ( If you want to parse response Error Object and notify error, use this ) & util.renderNotify method ( If you prepare a message and want to notify it, use this )
2. [Change] Overwrite `this.$notify` & `this.$message`.
3. [Change] Change GET /auth/system error level and GET /langresc error level to fatalError
4. [Change] Make sure success message of adding a device in mobile version is not changing UI
5. [Change][SRPDashboard] Grid overflowing notifies warning message
6. [Change][SRPDashboard] Change Time interval options labels. "Second" to "Row Data". "Minute" to "Recording Rate".
7. [Fix][SRPDashboard] Canceling a request causes an error when source_GET_FLAT_MACHINE_DATA is null because we had the object List cache from page Object.
**Test**
1. test 1,2,3,5 by `npm run fake-dev-server`
- [x] util.notify type error - disconnect network
- [x] util.notify type fatalError - localhost:8080/#/login?testGetError=500
- [x] util.notify type success - page Plugin -> refresh plugin status
- [x] util.notify type warning - page SRP-Dashboard grid overflow warning
- [x] this.$notify type error - in Console input
```javascript=
window.document.getElementById('app').__vue__.$notify({
type: 'error',
message: '錯誤:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify` type success - in Console input
```javascript=
window.document.getElementById('app').__vue__.$notify({
type: 'success',
message: '成功:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify` type warning -
```javascript=
window.document.getElementById('app').__vue__.$notify({
type: 'warning',
message: '警告:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify` type info (show warning UI) -
```javascript=
window.document.getElementById('app').__vue__.$notify({
type: 'info',
message: '訊息:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify.error` -
```javascript=
window.document.getElementById('app').__vue__.$notify.error({
message: '錯誤:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify.success` -
```javascript=
window.document.getElementById('app').__vue__.$notify.success({
message: '成功:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify.warning` -
```javascript=
window.document.getElementById('app').__vue__.$notify.warning({
message: '警告:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$notify.info` (show warning UI)-
```javascript=
window.document.getElementById('app').__vue__.$notify.info({
message: '訊息:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message` type error -
```javascript=
window.document.getElementById('app').__vue__.$message({
type: 'error',
message: '錯誤:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message` type success -
```javascript=
window.document.getElementById('app').__vue__.$message({
type: 'success',
message: '成功:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message` type warning -
```javascript=
window.document.getElementById('app').__vue__.$message({
type: 'warning',
message: '警告:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message` type info (show warning UI) -
```javascript=
window.document.getElementById('app').__vue__.$message({
type: 'info',
message: '訊息:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message.error` -
```javascript=
window.document.getElementById('app').__vue__.$message.error({
message: '錯誤:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message.success` -
```javascript=
window.document.getElementById('app').__vue__.$message.success({
message: '成功:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message.warning` -
```javascript=
window.document.getElementById('app').__vue__.$message.warning({
message: '警告:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
- [x] `this.$message.info` (show warning UI) -
```javascript=
window.document.getElementById('app').__vue__.$message.info({
message: '資訊:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
2. test 4, mobile notification message, set IPhoneX in devtool -> refresh page ->
- [x] test mobile adding device success message, add a device by manual
- [x] test mobile error
```javascript=
window.document.getElementById('app').__vue__.$message({
type: 'error',
message: '錯誤:悬浮出现在页面角落,显示全局的通知提醒消息。',
});
```
3. test 6 in SRP-Dashboard
- [x] graph -> exit x axis -> check options
4. test 7
- [x] page Object -> page SRP-Dashboard -> change org -> check Console
## 2021/08/24
### Alice
#### feature/i18n-save-bug
**Purpose**
1. [SPDashboard][change] save i18n & load i18n fix
2. [SRPDashboard][change] change function exports
**Test**
1. test for trace SRPDashboard
- [x] add a blank -> save
- [x] add from template -> save
- [x] preview template dashboard (just created) -> save -> edit with BI - SRPDashboard
- [x] add a blank -> add multistat/singlestat panel -> select target -> save -> preview
- [x] edit dashboard in grafana (just created) -> change language -> change panel size and title -> save
- [x] back to the BI edit with SRPDashboard -> check panel position -> change panel position and title -> save
- [x] preview in grafana -> check title is consistent with editor -> change language -> check panel size is consistent with the en-US
## 2021/08/23
### Alice
#### feature/load-i18n-fix
**Purpose**
1. [SRPDashboard] i18n load fix
**Test**
1. test
- [x] change prod.env testAPIForLocal path to e100-ensaas -> edit dashboard -> check panel display normal
## 2021/08/23
### Tingwei
#### [Change] High Level Error Confirm Dialog UI. Use it in "**Failed to load the page**"
**Purpose**
1. [Change] High Level Error Confirm Dialog UI. Use it in "**Failed to load the page**"
2. [Change] Upgrade confirmPromiseDialog.vue.
**Test**
1. test
- [x] `npm run prod-test` in portal_mplus -> `npm run dev` in portal_mplus_release -> rename dist/static/js/chunk.modelGuide.xxx.js -> login in browser -> check error dialog UI
- [x] -> click OK -> check whether the Page refreshes.
## 2021/08/18
### Alice
#### feature/i18n-bug-fix
**Purpose**
1. [SRPDashboard][fix] add detect if i18n exist
**Test**
1. test for SRPDashboard
- [x] add a blank dashboard -> save
### Tingwei
#### [Change] Optimize editing an SRP-Dashboard by fetching all objects when setPageData() in case "pageDashboard" condition. When a user edits an SRP-Dashboard, the function will check whether the loading data status is loading, finish or fail, etc.
**Purpose**
1. Refer to the title
2. [Change][SRPDashboard] Cancel api/machine/hierarchy/{orgId} request when beforeDestroy call resetAllState().
**Test**
1. test purpose 1 open devtool -> choose network
- [x] go to SRPDashboard -> machine/hierachy/{orgId} is loading -> edit an SRPDashboard -> the loading hides after machine/hierachy/{orgId} closed
- [x] cancel the SRPdashboard -> change org -> check whether make a machine/hierachy/{orgId} request
- [x] when machine/hierachy/{orgId} finish -> edit another SRPdashboard -> check whether machine/hierachy/{orgId} is not sending again
- [x] -> edit a item -> select parameter -> check whether object list is correct
2. test purpose 2 open devtool -> choose network
- [x] go to SRPDashboard -> machine/hierachy/{orgId} is loading -> change org -> old machine/hierachy/{orgId} close and new machine/hierachy/{orgId} start
## 2021/08/11
### Tingwei
#### [Add] QR Code in "group dialog /inspection"
**Purpose**
1. [Add] QR Code in "group dialog /inspection", portal_mplu (feature/group-inspection-qrcode)
**Test**
1. `npm run prod-test` in portal_mplu (feature/group-inspection-qrcode) & `npm run dev` in portal_mplus_release (feature/group-inspection-qrcode)
- [x] Scan to login App
- [x] app store qrcode
- [x] google play qrcode
- [x] download android qrcode
- [x] 鑫寶能 download android 只透過修改本地變數workspace測試
2. deploy to develop
- [x] deploy to develop ->check whether a key "inspectionApkUrl" in auth/system API response
- [x] scan download android qrcode
- [x] edit a object -> save
- [x] create a object -> save
- [x] delete a object
## 2021/08/10
### Alice
#### feature/i18n-re-assign-value
**Purpose**
1. [SRPDashboard][add] add i18n reassign when load
2. [SRPDashboard][add] save reassign
3. [SRPDashboard][fix] the label of the chart type panel is not assigned
4. [SRPDashboard][add] multi lang fit
**Test**
1. test for add blank & edit dashboard
- [x] preview dashboard -> change panel setting -> save -> edit in SRPDasnboard -> check title,decimals, unit,etc. is correct
- [x] edit a existing dashboard -> change title, decimals, unit,etc. -> save -> preview dashboard -> check the item changed correctly
- [x] edit existing dashboard -> change panel size -> save -> preview dashboard -> change the language -> check the panel size changes synchronously
- [x] change the different language panel setting -> save -> edit the dashboard at SRPDashboard editor -> save -> check the panel setting is synchronous in different language
1. test for single panel
- [x] Water Pump Status(芳芳)
- [x] Water Flow In-Out(芳芳)
- [x] Progress Bar(芳芳)
- [x] Water Achieving Rate(芳芳)
- [x] Log Chart(芳芳)
- [x] Graph(芳芳)
- [x] Donut Chart
- [x] Pie Chart
- [x] Grouped Bar Chart
- [x] SaaS Composer Viewer
- [x] PictureIt
- [x] multistat
- [x] singlestat (gauge)
- [x] singlestat (Text)
- [x] infographic
- [x] water statistic
- [x] monitor
- [x] ene dashboard switch
## 2021/07/27
### Alice
#### feature/mobile-add-device-mixin
**Purpose**
1. [mobileAddDevice][change] discardHandler mixins
2. [mobileAddDevice][change] add mobile dialog size
**Test**
1. test for mobile add device
- [x] QRcode name change -> cancel
- [x] QRcode desc change -> cancel
- [x] QRcode model type change -> cancel
- [x] QRcode MAC address change -> cancel
- [x] manual -> name change -> cancel
- [x] manual -> model name -> cancel
- [x] manual -> model category -> cancel
- [x] manual -> model type -> cancel
- [x] manual -> mac address -> cancel
- [x] change browser mode and size -> check the dialog size in mobile mode
- [x] change url -> enter -> cancel
## 2021/07/22
### Alice
#### feature/binding-obj-rule-list-fix
**Purpose**
1. [bindingList][change] use {type} and {deleteName} replace fixed translation
2. [responseMsgDialog][fix] fix error when this.res.status is undefined
3. [forwardingDialog][fix] 400001 isDuplicateName error style
**Test**
1. test for bindingList(device & forwardingRule)
- [x] delete the rule that was binding auth -> check different lang's {delete} and {type} was replaced
2. test for forwardingDialog
- [x] add a rule that name was exist -> check {type} was replaced and name column was changed as error style
## 2021/07/20
### Alice
#### feature/select-default-and-download
**Purpose**
1. [Center Portal][add][Back-end] file download
2. [Center Portal][change][Front-end] add default select
**Test**
1. test for Center Portal
- [x] input /download/[fileNmae] -> download the file
- [x] open the login page -> check domain is the first (no remember login info)
## 2021/07/16
### Alice
#### [Inspection][change] Service Disabled title
**Purpose**
1. [Inspection][change] Service Disabled title
**Test**
1. test for Inspection page
- [x] edit org -> change to Inspection tab -> status DISABLE -> close -> check page tips
## 2021/07/14
### Alice
#### feature/inspection-add-tip
**Purpose**
1. [Inspection][change] add inspection.enable
2. [Inspection][change] tip fix, node group no show
**Test**
1. test for Inspection page
- [x] edit org -> change to Inspection tab -> status ENABLE -> close -> check page (Tip: try again later & Reload button or full load the Inspection page)
- [x] edit org -> change to Inspection tab -> status DISABLE -> close -> check page (Tip: check the “Inspection” configuration)
#### feature/forwarding-show-dialog
**Purpose**
1. [pageForwarding][change] click name show edit dialog
**Test**
1. test for forwarding
- [x] click rule name -> show edit dialog
## 2021/07/13
### Alice
#### [datatable][change] update label-border-sample
**Purpose**
1. [datatable][change] update label-border-sample
**Test**
1. test for datatable panel item
- [x] focus title
- [x] click thresholds color
#### feature/forwarding-bug-fix
**Purpose**
1. [forwardingDialog] [fix] get & assign method when edit
2. [forwardingDialog] [fix] test status icon fix
3. [forwarding][change] ignoring case
**Test**
1. test for forwarding
- [x] save rule(Method is PUT OR PATCH) -> edit API rule -> check Method
- [x] fake res.status(success/failed) -> TEST -> check icon correct
- [x] fake res.status(Success/SucceSS...) -> check it ignoring upper & lower case
## 2021/07/12
### Alice
#### feature/datatable-to-object-monitoring
**Purpose**
1. [SRPDashboard] mocks data update
2. [SRPDashboard][change] datatable json fix
3. [datatable][add] label border simple
4. [datatable][add] is type index of '-reset' & patten is 'action'
**Test**
1. test for SRPDashboard datatable
- [x] add Object Monitor -> edit each item -> check simple & focus picture tip
- [x] add Object Monitor(Reset) -> edit each item -> check simple & focus picture tip
- [x] save -> view in grafana
- [x] edit -> change name & threshold color -> save -> view in grafana
- [x] duplicate in grafana -> edit -> check panel type correct
## 2021/07/09
### Tingwei
#### [Fix][jsonEditor] jsonEditor mistakenly validates null valid.
**Test**
1. test
- [x] forwarding -> create Bearer Auth -> input "null" in body -> blur -> invalid
- [x] forwarding -> create Bearer Auth -> input "1" in body -> blur -> invalid
- [x] forwarding -> create Bearer Auth -> input "a" in body -> blur -> invalid
- [x] forwarding -> create Bearer Auth -> input `{}` in body -> blur -> valid
- [x] forwarding -> create API forwarding -> input "null" in body -> blur -> invalid
- [x] forwarding -> create API forwarding -> input "1" in body -> blur -> invalid
- [x] forwarding -> create API forwarding -> input "a" in body -> blur -> invalid
- [x] forwarding -> create API forwarding -> input `{"<a>" : <b>}` in body -> blur -> valid
## 2021/07/08
### Tingwei
#### [Fix][jsonEditor] jsonEditor validates number valid.
**Purpose**
1. [Fix][jsonEditor] jsonEditor validates number valid.
**Test**
1. test
- [x] forwarding -> create Bearer Auth -> input "1" in body -> blur -> invalid
- [x] forwarding -> create Bearer Auth -> input "a" in body -> blur -> invalid
- [x] forwarding -> create Bearer Auth -> input `{}` in body -> blur -> valid
- [x] forwarding -> create API forwarding -> input "1" in body -> blur -> invalid
- [x] forwarding -> create API forwarding -> input "a" in body -> blur -> invalid
- [x] forwarding -> create API forwarding -> input `{"<a>" : <b>}` in body -> blur -> valid
## 2021/07/06
### Alice
#### feature/fix-auth-list-select-change
**Purpose**
1. [forwardingDialog][fix] fix auth list cannot be selected
**Test**
1. test for forwarding dialog
- [x] select auth -> check auth change -> cancel -> check dialog
## 2021/07/02
### Alice
#### feature/forwarding-mixin
**Purpose**
1. [forwardingDialog][add] $emit event when change
2. [forwardingDialog][add] add mixin dialog cancel tips
3. [forwardingDialog][fix] fix data load when edit & data combine when save error, fix validate error when rule save type is SQL
**Test**
1. test for forwarding dialog
- common test
- [x] add rule -> edit basicInformation -> click cancel -> show dialog
- [x] edit datasource type -> click cancel -> show dialog
- [x] change datasource tag -> click cancel -> show dialog
- [x] change time format -> click cancel -> show dialog
- test for edit API rule type
- [x] select -> method -> click cancel -> show dialog
- test for edit API & MQTT rule type
- [x] edit API Url/Topic input -> click cancel -> show dialog
- [x] edit API Body/Payload -> click cancel -> show dialog
- test for edit SQL rule type
- [x] edit SQL Command -> click cancel -> show dialog
2. test for forwarding dialog (bug fix)
- [x] edit rule that no datasource -> save (fix data load when edit & data combine when save error)
- [x] add SQL type rule -> save (fix validate error)