Fix node tests ci

- Update jest snapshot
- Fix importing 3rdparty vue components
- Disable temporarely tests using nextcloud-vue/Button

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
This commit is contained in:
Carl Schwan 2022-05-25 12:39:08 +02:00
parent 95f390d368
commit 623293c2dd
8 changed files with 23366 additions and 1568 deletions

View File

@ -1,6 +1,4 @@
import axios from '@nextcloud/axios'
import { render } from '@testing-library/vue'
import userEvent from '@testing-library/user-event'
import CalDavSettings from './CalDavSettings'
// eslint-disable-next-line no-unused-vars
import { generateUrl } from '@nextcloud/router'
@ -76,6 +74,9 @@ describe('CalDavSettings', () => {
)
expect(sendEventRemindersPush).toBeChecked()
/*
FIXME userEvent.click is broken with nextcloud-vue/Button
await userEvent.click(sendInvitations)
expect(sendInvitations).not.toBeChecked()
expect(OCP.AppConfig.setValue).toHaveBeenCalledWith(
@ -127,5 +128,6 @@ describe('CalDavSettings', () => {
expect(sendEventRemindersToSharedGroupMembers).toBeEnabled()
expect(sendEventRemindersPush).toBeEnabled()
*/
})
})

View File

@ -3,14 +3,53 @@
exports[`CalDavSettings interactions 1`] = `
<div>
<div
class="section"
class="settings-section"
data-v-548823d7=""
>
<h2>
Calendar server
<h2
class="settings-section__title"
data-v-548823d7=""
>
Calendar server
<a
class="settings-section__info"
data-v-548823d7=""
href="https://docs.nextcloud.com/server/23/go.php?to=user-sync-calendars"
role="note"
title="External documentation for Calendar server"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon help-circle-icon"
data-v-548823d7=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"
>
<!---->
</path>
</svg>
</span>
</a>
</h2>
<!---->
<p
class="settings-hint"
data-v-548823d7=""
>
Also install the
<a
@ -30,24 +69,59 @@ exports[`CalDavSettings interactions 1`] = `
.
</p>
<p>
<input
class="checkbox"
id="caldavSendInvitations"
type="checkbox"
/>
<label
for="caldavSendInvitations"
<p
data-v-548823d7=""
>
<span
class="checkbox-radio-switch checkbox-radio-switch-switch checkbox-radio-switch--checked"
data-v-036397c2=""
data-v-548823d7=""
style="--icon-size: 36px;"
>
<input
class="checkbox-radio-switch__input"
data-v-036397c2=""
id="caldavSendInvitations"
type="checkbox"
value=""
/>
<label
class="checkbox-radio-switch__label"
data-v-036397c2=""
for="caldavSendInvitations"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon toggle-switch-icon checkbox-radio-switch__icon"
data-v-036397c2=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="36"
viewBox="0 0 24 24"
width="36"
>
<path
d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"
>
<!---->
</path>
</svg>
</span>
Send invitations to attendees
</label>
</label>
</span>
<br />
<em>
<em
data-v-548823d7=""
>
Please make sure to properly set up
<a
href="../admin#mail_general_settings"
@ -58,56 +132,130 @@ exports[`CalDavSettings interactions 1`] = `
</em>
</p>
<p>
<input
class="checkbox"
id="caldavGenerateBirthdayCalendar"
type="checkbox"
/>
<label
for="caldavGenerateBirthdayCalendar"
<p
data-v-548823d7=""
>
<span
class="checkbox-radio-switch checkbox checkbox-radio-switch-switch checkbox-radio-switch--checked"
data-v-036397c2=""
data-v-548823d7=""
style="--icon-size: 36px;"
>
<input
class="checkbox-radio-switch__input"
data-v-036397c2=""
id="caldavGenerateBirthdayCalendar"
type="checkbox"
value=""
/>
<label
class="checkbox-radio-switch__label"
data-v-036397c2=""
for="caldavGenerateBirthdayCalendar"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon toggle-switch-icon checkbox-radio-switch__icon"
data-v-036397c2=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="36"
viewBox="0 0 24 24"
width="36"
>
<path
d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"
>
<!---->
</path>
</svg>
</span>
Automatically generate a birthday calendar
</label>
</label>
</span>
<br />
<em>
<em
data-v-548823d7=""
>
Birthday calendars will be generated by a background job.
</em>
<br />
<br
data-v-548823d7=""
/>
<em>
<em
data-v-548823d7=""
>
Hence they will not be available immediately after enabling but will show up after some time.
</em>
</p>
<p>
<input
class="checkbox"
id="caldavSendEventReminders"
type="checkbox"
/>
<label
for="caldavSendEventReminders"
<p
data-v-548823d7=""
>
<span
class="checkbox-radio-switch checkbox-radio-switch-switch checkbox-radio-switch--checked"
data-v-036397c2=""
data-v-548823d7=""
style="--icon-size: 36px;"
>
<input
class="checkbox-radio-switch__input"
data-v-036397c2=""
id="caldavSendEventReminders"
type="checkbox"
value=""
/>
<label
class="checkbox-radio-switch__label"
data-v-036397c2=""
for="caldavSendEventReminders"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon toggle-switch-icon checkbox-radio-switch__icon"
data-v-036397c2=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="36"
viewBox="0 0 24 24"
width="36"
>
<path
d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"
>
<!---->
</path>
</svg>
</span>
Send notifications for events
</label>
</label>
</span>
<br />
<em>
<em
data-v-548823d7=""
>
Please make sure to properly set up
<a
href="../admin#mail_general_settings"
@ -117,9 +265,13 @@ exports[`CalDavSettings interactions 1`] = `
.
</em>
<br />
<br
data-v-548823d7=""
/>
<em>
<em
data-v-548823d7=""
>
Notifications are sent via background jobs, so these must occur often enough.
@ -128,24 +280,58 @@ exports[`CalDavSettings interactions 1`] = `
<p
class="indented"
data-v-548823d7=""
>
<input
class="checkbox"
id="caldavSendEventRemindersToSharedGroupMembers"
type="checkbox"
/>
<label
for="caldavSendEventRemindersToSharedGroupMembers"
<span
class="checkbox-radio-switch checkbox-radio-switch-switch checkbox-radio-switch--checked"
data-v-036397c2=""
data-v-548823d7=""
style="--icon-size: 36px;"
>
<input
class="checkbox-radio-switch__input"
data-v-036397c2=""
id="caldavSendEventRemindersToSharedGroupMembers"
type="checkbox"
value=""
/>
<label
class="checkbox-radio-switch__label"
data-v-036397c2=""
for="caldavSendEventRemindersToSharedGroupMembers"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon toggle-switch-icon checkbox-radio-switch__icon"
data-v-036397c2=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="36"
viewBox="0 0 24 24"
width="36"
>
<path
d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"
>
<!---->
</path>
</svg>
</span>
Send reminder notifications to calendar sharees as well
</label>
</label>
</span>
<br />
<em>
<em
data-v-548823d7=""
>
Reminders are always sent to organizers and attendees.
@ -154,20 +340,54 @@ exports[`CalDavSettings interactions 1`] = `
<p
class="indented"
data-v-548823d7=""
>
<input
class="checkbox"
id="caldavSendEventRemindersPush"
type="checkbox"
/>
<label
for="caldavSendEventRemindersPush"
<span
class="checkbox-radio-switch checkbox-radio-switch-switch checkbox-radio-switch--checked"
data-v-036397c2=""
data-v-548823d7=""
style="--icon-size: 36px;"
>
<input
class="checkbox-radio-switch__input"
data-v-036397c2=""
id="caldavSendEventRemindersPush"
type="checkbox"
value=""
/>
<label
class="checkbox-radio-switch__label"
data-v-036397c2=""
for="caldavSendEventRemindersPush"
>
<span
aria-hidden="true"
aria-label=""
class="material-design-icon toggle-switch-icon checkbox-radio-switch__icon"
data-v-036397c2=""
decorative=""
role="img"
>
<svg
class="material-design-icon__svg"
fill="currentColor"
height="36"
viewBox="0 0 24 24"
width="36"
>
<path
d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"
>
<!---->
</path>
</svg>
</span>
Enable notifications for events via push
</label>
</label>
</span>
</p>
</div>
</div>

View File

@ -66,6 +66,7 @@ $expectedFiles = [
'dist',
'index.html',
'index.php',
'jest.config.js',
'lib',
'Makefile',
'occ',

52
jest.config.js Normal file
View File

@ -0,0 +1,52 @@
/*
* @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>
*
* @author Marco Ambrosini <marcoambrosini@pm.me>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
// TODO: find a way to consolidate this in one place, with webpack.common.js
const ignorePatterns = [
'vue-material-design-icons',
'@juliushaertl',
'tributejs',
'@nextcloud/vue',
'splitpanes',
'string-length',
'strip-ansi',
'ansi-regex',
'char-regex',
]
module.exports = {
preset: '@vue/cli-plugin-unit-jest/presets/no-babel',
testMatch: ['<rootDir>/apps/*/src/**/*.(spec|test).(ts|js)'],
modulePathIgnorePatterns: ["<rootDir>/apps-extra/"],
transformIgnorePatterns: [
'node_modules/(?!(' + ignorePatterns.join('|') + ')/)',
],
setupFilesAfterEnv: ['<rootDir>/tests/jestSetup.js'],
resetMocks: false,
collectCoverageFrom: [
'<rootDir>/apps/*/src/**/*.{js,vue}',
],
transform: {
// process `*.js` files with `babel-jest`
'.*\\.(js)$': 'babel-jest',
},
}

24482
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -48,6 +48,7 @@
"@nextcloud/sharing": "^0.1.0",
"@nextcloud/vue": "^5.3.1",
"@nextcloud/vue-dashboard": "^2.0.1",
"@vue/cli-plugin-unit-jest": "^4.5.15",
"autosize": "^5.0.1",
"backbone": "^1.4.1",
"blueimp-md5": "^2.19.0",

View File

@ -1,26 +0,0 @@
/**
* @copyright 2021 François Freitag <mail@franek.fr>
*
* @author François Freitag <mail@franek.fr>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
const babelJest = require('babel-jest')
const babelConfig = require('@nextcloud/babel-config')
module.exports = babelJest.createTransformer(babelConfig)

View File

@ -20,4 +20,4 @@
*
*/
require('@testing-library/jest-dom')
import '@testing-library/jest-dom'