diff --git a/frontend/src/components/ContributionMessages/ContributionMessagesList.vue b/frontend/src/components/ContributionMessages/ContributionMessagesList.vue
index 5f1c03b22..4b7045a40 100644
--- a/frontend/src/components/ContributionMessages/ContributionMessagesList.vue
+++ b/frontend/src/components/ContributionMessages/ContributionMessagesList.vue
@@ -5,15 +5,23 @@
-
-
-
- {{ $t('form.close') }}
+
+
+
+
+
+
+
+ {{ $t('form.close') }}
+
@@ -55,4 +63,7 @@ export default {
.temp-message {
margin-top: 50px;
}
+.clearboth {
+ clear: both;
+}
diff --git a/frontend/src/components/Contributions/ContributionForm.spec.js b/frontend/src/components/Contributions/ContributionForm.spec.js
index 8f35948f9..3af716d36 100644
--- a/frontend/src/components/Contributions/ContributionForm.spec.js
+++ b/frontend/src/components/Contributions/ContributionForm.spec.js
@@ -198,6 +198,75 @@ describe('ContributionForm', () => {
})
})
})
+
+ describe('date with the 31st day of the month', () => {
+ describe('same month', () => {
+ beforeEach(async () => {
+ await wrapper.setData({
+ maximalDate: new Date('2022-10-31T00:00:00.000Z'),
+ form: { date: new Date('2022-10-31T00:00:00.000Z') },
+ })
+ })
+
+ describe('minimalDate', () => {
+ it('has "2022-09-01T00:00:00.000Z"', () => {
+ expect(wrapper.vm.minimalDate.toISOString()).toBe('2022-09-01T00:00:00.000Z')
+ })
+ })
+
+ describe('isThisMonth', () => {
+ it('has true', () => {
+ expect(wrapper.vm.isThisMonth).toBe(true)
+ })
+ })
+ })
+ })
+
+ describe('date with the 28th day of the month', () => {
+ describe('same month', () => {
+ beforeEach(async () => {
+ await wrapper.setData({
+ maximalDate: new Date('2023-02-28T00:00:00.000Z'),
+ form: { date: new Date('2023-02-28T00:00:00.000Z') },
+ })
+ })
+
+ describe('minimalDate', () => {
+ it('has "2023-01-01T00:00:00.000Z"', () => {
+ expect(wrapper.vm.minimalDate.toISOString()).toBe('2023-01-01T00:00:00.000Z')
+ })
+ })
+
+ describe('isThisMonth', () => {
+ it('has true', () => {
+ expect(wrapper.vm.isThisMonth).toBe(true)
+ })
+ })
+ })
+ })
+
+ describe('date with 29.02.2024 leap year', () => {
+ describe('same month', () => {
+ beforeEach(async () => {
+ await wrapper.setData({
+ maximalDate: new Date('2024-02-29T00:00:00.000Z'),
+ form: { date: new Date('2024-02-29T00:00:00.000Z') },
+ })
+ })
+
+ describe('minimalDate', () => {
+ it('has "2024-01-01T00:00:00.000Z"', () => {
+ expect(wrapper.vm.minimalDate.toISOString()).toBe('2024-01-01T00:00:00.000Z')
+ })
+ })
+
+ describe('isThisMonth', () => {
+ it('has true', () => {
+ expect(wrapper.vm.isThisMonth).toBe(true)
+ })
+ })
+ })
+ })
})
describe('set contrubtion', () => {
diff --git a/frontend/src/components/Contributions/ContributionForm.vue b/frontend/src/components/Contributions/ContributionForm.vue
index 71593f2b1..3884fd5b4 100644
--- a/frontend/src/components/Contributions/ContributionForm.vue
+++ b/frontend/src/components/Contributions/ContributionForm.vue
@@ -131,10 +131,8 @@ export default {
},
computed: {
minimalDate() {
- // sets the date to the 1st of the previous month
- let date = new Date(this.maximalDate) // has to be a new object, because of 'setMonth' changes the objects date
- date = new Date(date.setMonth(date.getMonth() - 1))
- return new Date(date.getFullYear(), date.getMonth(), 1)
+ const date = new Date(this.maximalDate)
+ return new Date(date.setMonth(date.getMonth() - 1, 1))
},
disabled() {
return (