diff --git a/plugins/slack/__tests__/__snapshots__/slack.test.ts.snap b/plugins/slack/__tests__/__snapshots__/slack.test.ts.snap index 24463166d..f68672cd7 100644 --- a/plugins/slack/__tests__/__snapshots__/slack.test.ts.snap +++ b/plugins/slack/__tests__/__snapshots__/slack.test.ts.snap @@ -272,6 +272,118 @@ Array [ ] `; +exports[`convertToBlocks works with really long changelog line 1`] = ` +Array [ + Array [ + Object { + "text": Object { + "text": "*🐛 Bug Fix*", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": "• Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus t", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": "empus interdum nec sed orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. ", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": "Cras vitae velit a lectus tempus interdum nec sed orci. ", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": " ", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "type": "divider", + }, + Object { + "elements": Array [ + Object { + "text": "*Authors: 1*", + "type": "mrkdwn", + }, + ], + "type": "context", + }, + Object { + "elements": Array [ + Object { + "text": "• Andrew Lisowski ()", + "type": "mrkdwn", + }, + ], + "type": "context", + }, + ], +] +`; + +exports[`convertToBlocks works with really long line 1`] = ` +Array [ + Array [ + Object { + "text": Object { + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tem", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": "pus interdum nec sed orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cr", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "text": Object { + "text": "as vitae velit a lectus tempus interdum nec sed orci. ", + "type": "mrkdwn", + }, + "type": "section", + }, + Object { + "type": "divider", + }, + Object { + "elements": Array [ + Object { + "text": "*Authors: 1*", + "type": "mrkdwn", + }, + ], + "type": "context", + }, + Object { + "elements": Array [ + Object { + "text": "• Andrew Lisowski ()", + "type": "mrkdwn", + }, + ], + "type": "context", + }, + ], +] +`; + exports[`postToSlack should add more indents to nested lists - 2 spaces 1`] = ` Object { "blocks": Array [ diff --git a/plugins/slack/__tests__/slack.test.ts b/plugins/slack/__tests__/slack.test.ts index f74247d02..99f16c656 100644 --- a/plugins/slack/__tests__/slack.test.ts +++ b/plugins/slack/__tests__/slack.test.ts @@ -447,6 +447,36 @@ describe("convertToBlocks", () => { ).toMatchSnapshot(); }); + test("works with really long line", () => { + expect( + convertToBlocks( + sanitizeMarkdown(endent` + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. + + #### Authors: 1 + + - Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie)) + `) + ) + ).toMatchSnapshot(); + }); + + test("works with really long changelog line", () => { + expect( + convertToBlocks( + sanitizeMarkdown(endent` + #### 🐛 Bug Fix + + - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. Cras ultrices vehicula metus, quis lacinia ex. Ut eget fringilla augue. Fusce a nunc arcu. Nunc fermentum enim elit, sed laoreet nibh auctor sed. Curabitur erat tellus, tincidunt in augue eu, laoreet auctor massa. Aliquam posuere malesuada quam quis mollis. Donec mollis lorem ac metus tempus, consectetur egestas nunc aliquam. Nam varius laoreet urna, at egestas magna laoreet in. Fusce faucibus a tortor blandit pulvinar. Integer at elit a sapien fringilla luctus. Duis sed sapien eget tortor sagittis tristique a id mi. Nam eu suscipit urna. Etiam sapien mauris, pellentesque quis ornare vitae, sodales id mi. Vestibulum dictum est at magna cursus, at aliquam odio tincidunt. Donec interdum iaculis pharetra. Praesent at vulputate libero. Pellentesque in est a ligula egestas scelerisque. Nulla posuere viverra diam a malesuada. Donec interdum lectus eros, non dictum odio viverra viverra. Mauris erat urna, placerat quis velit at, laoreet consectetur ligula. Donec sit amet fermentum quam, sed mattis lectus. In id metus eleifend, pharetra turpis quis, scelerisque turpis. In quis placerat lorem. Pellentesque eget nunc lectus. Curabitur porttitor enim sit amet lectus scelerisque, quis vehicula sem rutrum. Quisque convallis risus in feugiat venenatis. Vivamus elementum ligula et nibh efficitur aliquam. Curabitur eu fringilla mauris. Maecenas gravida nibh non viverra sodales. Integer et consequat magna. Ut nec rhoncus quam. Sed mollis fermentum massa, eu semper purus ultrices quis. Suspendisse dictum purus ut erat varius viverra. Aliquam erat volutpat. Suspendisse id diam nibh. Pellentesque congue ex eu neque posuere, eu maximus ligula faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut placerat luctus leo. Vestibulum nibh eros, varius quis posuere et, volutpat non leo. Donec pulvinar porta ligula, at molestie leo semper non. Ut tincidunt, mi a vehicula dictum, nulla tellus facilisis ante, id porta turpis metus sit amet est. Integer quis orci odio. Donec quis maximus ante. Morbi interdum commodo justo. Fusce a velit hendrerit augue tempor aliquet eget eu tortor. Integer in lacinia purus. Nunc ornare efficitur suscipit. Vivamus tincidunt ante quis sodales sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin non mi ac diam rutrum tincidunt. Sed hendrerit viverra ex ut tristique. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse cursus ornare suscipit. Cras a ante vel leo suscipit efficitur eget id orci. Maecenas sagittis sem placerat ligula sollicitudin mattis. Mauris nec massa volutpat, vestibulum ipsum vel, ultrices lacus. Cras vitae velit a lectus tempus interdum nec sed orci. + + #### Authors: 1 + + - Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie)) + `) + ) + ).toMatchSnapshot(); + }); + test("work for simple additional release notes", () => { expect( convertToBlocks( diff --git a/plugins/slack/src/index.ts b/plugins/slack/src/index.ts index e7db9527b..9c2d3742a 100644 --- a/plugins/slack/src/index.ts +++ b/plugins/slack/src/index.ts @@ -91,6 +91,19 @@ interface Block { const CHANGELOG_LINE = /^\s*•/; type Messages = [Block[], ...Array]; +/** Split a long spring into chunks by character limit */ +const splitCharacterLimit = (line: string, charLimit: number) => { + const splitLines = []; + let buffer = line; + + while (buffer) { + splitLines.push(buffer.slice(0, charLimit)); + buffer = buffer.slice(charLimit); + } + + return splitLines; +}; + /** Convert the sanitized markdown to slack blocks */ export function convertToBlocks( slackMarkdown: string, @@ -156,8 +169,25 @@ export function convertToBlocks( lines.push(changelogLine); } - currentMessage.push(createSectionBlock(lines.join("\n"))); + const fullSection = lines.join("\n"); + + if (line.length > 3000) { + const splitLines = splitCharacterLimit(line, 3000); + + splitLines.forEach((splitLine) => { + currentMessage.push(createSectionBlock(splitLine)); + }); + } else { + currentMessage.push(createSectionBlock(fullSection)); + } + currentMessage.push(createSpacerBlock()); + } else if (line.length > 3000) { + const splitLines = splitCharacterLimit(line, 3000); + + splitLines.forEach((splitLine) => { + currentMessage.push(createSectionBlock(splitLine)); + }); } else if (line) { currentMessage.push(createSectionBlock(line)); } @@ -339,7 +369,7 @@ export default class SlackPlugin implements IPlugin { const releaseUrl = urls.length > 1 ? urls.join(", ") - : `${url(releases[0].data.html_url, 'View Release')}`; + : `${url(releases[0].data.html_url, "View Release")}`; // First add context to share link to release messages[0].unshift(