Skip to content

Commit 2d0a85b

Browse files
author
vikasrohit
authored
Merge pull request #377 from maxceem/feature/milestones-optional-texts
feat: make milestone texts optional
2 parents 0b9afe7 + 0995456 commit 2d0a85b

File tree

4 files changed

+16
-76
lines changed

4 files changed

+16
-76
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
--
2+
-- UPDATE EXISTING TABLES:
3+
-- milestones
4+
5+
ALTER TABLE milestones ALTER COLUMN "plannedText" DROP NOT NULL;
6+
ALTER TABLE milestones ALTER COLUMN "activeText" DROP NOT NULL;
7+
ALTER TABLE milestones ALTER COLUMN "completedText" DROP NOT NULL;
8+
ALTER TABLE milestones ALTER COLUMN "blockedText" DROP NOT NULL;

src/models/milestone.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ module.exports = (sequelize, DataTypes) => {
6666
type: { type: DataTypes.STRING(45), allowNull: false },
6767
details: DataTypes.JSON,
6868
order: { type: DataTypes.INTEGER, allowNull: false },
69-
plannedText: { type: DataTypes.STRING(512), allowNull: false },
70-
activeText: { type: DataTypes.STRING(512), allowNull: false },
71-
completedText: { type: DataTypes.STRING(512), allowNull: false },
72-
blockedText: { type: DataTypes.STRING(512), allowNull: false },
69+
plannedText: { type: DataTypes.STRING(512) },
70+
activeText: { type: DataTypes.STRING(512) },
71+
completedText: { type: DataTypes.STRING(512) },
72+
blockedText: { type: DataTypes.STRING(512) },
7373
hidden: { type: DataTypes.BOOLEAN, defaultValue: false },
7474
deletedAt: DataTypes.DATE,
7575
createdAt: { type: DataTypes.DATE, defaultValue: DataTypes.NOW },

src/routes/milestones/create.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ const schema = {
3131
type: Joi.string().max(45).required(),
3232
details: Joi.object(),
3333
order: Joi.number().integer().required(),
34-
plannedText: Joi.string().max(512).required(),
35-
activeText: Joi.string().max(512).required(),
36-
completedText: Joi.string().max(512).required(),
37-
blockedText: Joi.string().max(512).required(),
34+
plannedText: Joi.string().max(512),
35+
activeText: Joi.string().max(512),
36+
completedText: Joi.string().max(512),
37+
blockedText: Joi.string().max(512),
3838
hidden: Joi.boolean().optional(),
3939
createdAt: Joi.any().strip(),
4040
updatedAt: Joi.any().strip(),

src/routes/milestones/create.spec.js

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -320,74 +320,6 @@ describe('CREATE milestone', () => {
320320
.expect(422, done);
321321
});
322322

323-
it('should return 422 if missing plannedText', (done) => {
324-
const invalidBody = {
325-
param: _.assign({}, body.param, {
326-
plannedText: undefined,
327-
}),
328-
};
329-
330-
request(server)
331-
.post('/v4/timelines/1/milestones')
332-
.set({
333-
Authorization: `Bearer ${testUtil.jwts.admin}`,
334-
})
335-
.send(invalidBody)
336-
.expect('Content-Type', /json/)
337-
.expect(422, done);
338-
});
339-
340-
it('should return 422 if missing activeText', (done) => {
341-
const invalidBody = {
342-
param: _.assign({}, body.param, {
343-
activeText: undefined,
344-
}),
345-
};
346-
347-
request(server)
348-
.post('/v4/timelines/1/milestones')
349-
.set({
350-
Authorization: `Bearer ${testUtil.jwts.admin}`,
351-
})
352-
.send(invalidBody)
353-
.expect('Content-Type', /json/)
354-
.expect(422, done);
355-
});
356-
357-
it('should return 422 if missing completedText', (done) => {
358-
const invalidBody = {
359-
param: _.assign({}, body.param, {
360-
completedText: undefined,
361-
}),
362-
};
363-
364-
request(server)
365-
.post('/v4/timelines/1/milestones')
366-
.set({
367-
Authorization: `Bearer ${testUtil.jwts.admin}`,
368-
})
369-
.send(invalidBody)
370-
.expect('Content-Type', /json/)
371-
.expect(422, done);
372-
});
373-
374-
it('should return 422 if missing blockedText', (done) => {
375-
const invalidBody = {
376-
param: _.assign({}, body.param, {
377-
blockedText: undefined,
378-
}),
379-
};
380-
381-
request(server)
382-
.post('/v4/timelines/1/milestones')
383-
.set({
384-
Authorization: `Bearer ${testUtil.jwts.admin}`,
385-
})
386-
.send(invalidBody)
387-
.expect('Content-Type', /json/)
388-
.expect(422, done);
389-
});
390-
391323
it('should return 422 if startDate is after endDate', (done) => {
392324
const invalidBody = {
393325
param: _.assign({}, body.param, {

0 commit comments

Comments
 (0)