---
# System prepended metadata

title: DeviceOn/BI Portal RD Test scenario 2021/07~2021/09
tags: [DeviceOnBI]

---

# 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)