Skip to content

Commit 45f7311

Browse files
authored
Merge pull request #51477 from nextcloud/fix/reset-phone-number
fix(profile): allow to unset phone number
2 parents e6b45a6 + 1343f8f commit 45f7311

File tree

7 files changed

+106
-80
lines changed

7 files changed

+106
-80
lines changed

apps/settings/src/components/PersonalInfo/PhoneSection.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ export default {
3939
4040
methods: {
4141
onValidate(value) {
42+
if (value === '') {
43+
return true
44+
}
45+
4246
if (defaultPhoneRegion) {
4347
return isValidPhoneNumber(value, defaultPhoneRegion)
4448
}

cypress/e2e/settings/personal-info.cy.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,40 @@ describe('Settings: Change personal information', { testIsolation: true }, () =>
336336
cy.get('a[href="tel:+498972101099701"]').should('be.visible')
337337
})
338338

339+
it('Can set phone number with phone region', () => {
340+
cy.contains('label', 'Phone number').scrollIntoView()
341+
inputForLabel('Phone number').type('{selectAll}0 40 428990')
342+
inputForLabel('Phone number').should('have.attr', 'class').and('contain', '--error')
343+
344+
cy.runOccCommand('config:system:set default_phone_region --value DE')
345+
cy.reload()
346+
347+
cy.contains('label', 'Phone number').scrollIntoView()
348+
inputForLabel('Phone number').type('{selectAll}0 40 428990')
349+
handlePasswordConfirmation(user.password)
350+
351+
cy.wait('@submitSetting')
352+
cy.reload()
353+
inputForLabel('Phone number').should('have.value', '+4940428990')
354+
})
355+
356+
it('Can reset phone number', () => {
357+
cy.contains('label', 'Phone number').scrollIntoView()
358+
inputForLabel('Phone number').type('{selectAll}+49 40 428990')
359+
handlePasswordConfirmation(user.password)
360+
361+
cy.wait('@submitSetting')
362+
cy.reload()
363+
inputForLabel('Phone number').should('have.value', '+4940428990')
364+
365+
inputForLabel('Phone number').clear()
366+
handlePasswordConfirmation(user.password)
367+
368+
cy.wait('@submitSetting')
369+
cy.reload()
370+
inputForLabel('Phone number').should('have.value', '')
371+
})
372+
339373
it('Can set Website and change its visibility', () => {
340374
cy.contains('label', 'Website').scrollIntoView()
341375
// Check invalid input

dist/settings-vue-settings-personal-info.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-vue-settings-personal-info.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 53 additions & 73 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
"karma-spec-reporter": "^0.0.36",
172172
"karma-viewport": "^1.0.9",
173173
"mime": "^4.0.6",
174-
"puppeteer": "^24.1.1",
174+
"puppeteer": "^24.4.0",
175175
"raw-loader": "^4.0.2",
176176
"regextras": "^0.8.0",
177177
"sass": "^1.81.0",

tests/karma.config.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@
1818
* preprocessor, which is needed to be able to debug tests properly in a browser.
1919
*/
2020

21+
const { existsSync } = require('node:fs');
22+
2123
if (!process.env.CHROMIUM_BIN) {
22-
process.env.CHROMIUM_BIN = require('puppeteer').executablePath()
24+
const chrome = require('puppeteer').executablePath()
25+
process.env.CHROMIUM_BIN = chrome
2326
}
2427

2528
/* jshint node: true */
@@ -243,14 +246,19 @@ module.exports = function(config) {
243246
// - PhantomJS
244247
// - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
245248
// use PhantomJS_debug for extra local debug
246-
browsers: ['ChromiumHeadless'],
249+
browsers: ['Chrome_without_sandbox'],
247250

248251
// you can define custom flags
249252
customLaunchers: {
250253
PhantomJS_debug: {
251254
base: 'PhantomJS',
252255
debug: true
253-
}
256+
},
257+
// fix CI
258+
Chrome_without_sandbox: {
259+
base: 'ChromiumHeadless',
260+
flags: ['--no-sandbox'],
261+
},
254262
},
255263

256264
// If browser does not capture in given timeout [ms], kill it

0 commit comments

Comments
 (0)