aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/tests
diff options
context:
space:
mode:
authorFrançois Freitag <mail@franek.fr>2021-05-16 17:56:50 +0200
committerFrançois Freitag <mail@franek.fr>2021-06-05 11:22:25 +0200
commit70edda034201b9d7c3d38bb714dfb35324b2841c (patch)
tree7dbdc91f8b99d82c1e805d657c8fcbafce7a0ece /apps/dav/tests
parent46dbc8fa988176e4a431cafcbae6674fb613c899 (diff)
downloadnextcloud-server-70edda034201b9d7c3d38bb714dfb35324b2841c.tar.gz
nextcloud-server-70edda034201b9d7c3d38bb714dfb35324b2841c.zip
Port dav calendar settings page to Vue.js
- Drop reliance on deprecated global jQuery object. - Allow testing user interactions. - Use newer technology stack. --- Test user interactions with the groupware dav settings Add infrastructure to test Vue components: - Use recommended libraries: - https://vuejs.org/v2/guide/testing.html#Recommendations - Use jest-dom for robust assertions on the DOM state - Use user-event to be more representative of user actions - Code is transpiled by Jest, with the help of vue-jest. Ignore test files for no-unpublished-import. Prevent ESLint from flagging: ``` /home/runner/work/server/server/apps/dav/src/views/CalDavSettings.spec.js Error: 1:24 error "@testing-library/vue" is not published node/no-unpublished-import Error: 2:23 error "@testing-library/user-event" is not published node/no-unpublished-import ``` Signed-off-by: François Freitag <mail@franek.fr>
Diffstat (limited to 'apps/dav/tests')
-rw-r--r--apps/dav/tests/unit/Settings/CalDAVSettingsTest.php22
1 files changed, 21 insertions, 1 deletions
diff --git a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
index 5c8a89db547..d02990f97ec 100644
--- a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
+++ b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
@@ -28,6 +28,7 @@ namespace OCA\DAV\Tests\Unit\DAV\Settings;
use OCA\DAV\Settings\CalDAVSettings;
use OCP\IConfig;
+use OCP\AppFramework\Services\IInitialState;
use Test\TestCase;
class CalDAVSettingsTest extends TestCase {
@@ -35,6 +36,9 @@ class CalDAVSettingsTest extends TestCase {
/** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
private $config;
+ /** @var OCP\AppFramework\Services\IInitialState|\PHPUnit\Framework\MockObject\MockObject */
+ private $initialState;
+
/** @var CalDAVSettings */
private $settings;
@@ -42,10 +46,26 @@ class CalDAVSettingsTest extends TestCase {
parent::setUp();
$this->config = $this->createMock(IConfig::class);
- $this->settings = new CalDAVSettings($this->config);
+ $this->initialState = $this->createMock(IInitialState::class);
+ $this->settings = new CalDAVSettings($this->config, $this->initialState);
}
public function testGetForm() {
+ $this->config->method('getAppValue')
+ ->withConsecutive(
+ ['dav', 'sendInvitations', 'yes'],
+ ['dav', 'generateBirthdayCalendar', 'yes'],
+ ['dav', 'sendEventReminders', 'yes'],
+ ['dav', 'sendEventRemindersPush', 'no'],
+ )
+ ->will($this->onConsecutiveCalls('yes', 'no', 'yes', 'yes'));
+ $this->initialState->method('provideInitialState')
+ ->withConsecutive(
+ ['sendInvitations', true],
+ ['generateBirthdayCalendar', false],
+ ['sendEventReminders', true],
+ ['sendEventRemindersPush', true],
+ );
$result = $this->settings->getForm();
$this->assertInstanceOf('OCP\AppFramework\Http\TemplateResponse', $result);