Steven Fukase 4 лет назад
Родитель
Сommit
d5d5ffd129
3 измененных файлов с 92 добавлено и 8 удалено
  1. 1 0
      packages/slack/package.json
  2. 86 8
      packages/slack/src/utils/reshape-contents-body.test.ts
  3. 5 0
      yarn.lock

+ 1 - 0
packages/slack/package.json

@@ -15,6 +15,7 @@
     "test:lint:fix": "eslint src --ext .ts --fix"
   },
   "dependencies": {
+    "@babel/helper-validator-identifier": "^7.14.5",
     "axios": "^0.21.1",
     "browser-bunyan": "^1.6.3",
     "bunyan": "^1.8.15",

+ 86 - 8
packages/slack/src/utils/reshape-contents-body.test.ts

@@ -1,11 +1,18 @@
 /* eslint-disable max-len */
+/* eslint-disable no-useless-escape */
 import { reshapeContentsBody } from './reshape-contents-body';
 
 describe('reshapeContentsBody', () => {
 
   describe('Markdown only', () => {
     test('Return the same input', () => {
-      const input = '# Title  \n## Section  \nI tested this code at 12:00 AM.  \n**bold** text\nsome texts';
+      // const input = '# Title  \n## Section  \nI tested this code at 12:00 AM.  \n**bold** text\nsome texts';
+      const input = `
+      # Title\s\s
+      ## Section\s\s
+      I tested this code at 12:00 AM.\s\s
+      **bold** text
+      some texts`;
 
       expect(reshapeContentsBody(input)).toBe(input);
     });
@@ -13,7 +20,13 @@ describe('reshapeContentsBody', () => {
 
   describe('Contains time but no headers', () => {
     test('Return the same input', () => {
-      const input = '12:23\nsome messages...\n12:23\nsome messages...\n12:23';
+      // const input = '12:23\nsome messages...\n12:23\nsome messages...\n12:23';
+      const input = `
+12:23
+some messages...
+12:23
+some messages...
+12:23`;
 
       expect(reshapeContentsBody(input)).toBe(input);
     });
@@ -21,8 +34,33 @@ describe('reshapeContentsBody', () => {
 
   describe('Copied from Slack only', () => {
     test('Reshape', () => {
-      const input = 'taichi-m  12:23 PM\nsome messages...\nsome messages...\nsome messages...\n12:23\nsome messages...\n12:23\nsome messages...';
-      const output = '\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>\n  \nsome messages...  \nsome messages...  \nsome messages...  \n--12:23--  \nsome messages...  \n--12:23--  \nsome messages...  \n</div>  \n';
+      // const input = 'taichi-m  12:23 PM\nsome messages...\nsome messages...\nsome messages...\n12:23\nsome messages...\n12:23\nsome messages...';
+      // const output = '\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>\n  \nsome messages...  \nsome messages...  \nsome messages...  \n--12:23--  \nsome messages...  \n--12:23--  \nsome messages...  \n</div>  \n';
+      const input = `
+taichi-m  12:23 PM
+some messages...
+some messages...
+some messages...
+12:23
+some messages...
+12:23
+some messages...`;
+
+      const output = `
+
+<div class="grw-togetter">
+
+## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>
+\s\s
+some messages...\s\s
+some messages...\s\s
+some messages...\s\s
+--12:23--\s\s
+some messages...\s\s
+--12:23--\s\s
+some messages...\s\s
+</div>\s\s
+`;
 
       expect(reshapeContentsBody(input)).toBe(output);
     });
@@ -30,8 +68,33 @@ describe('reshapeContentsBody', () => {
 
   describe('Copied from Slack only (24 hours format)', () => {
     test('Reshape', () => {
-      const input = 'taichi-m  12:23\nsome messages...\nsome messages...\nsome messages...\n12:23\nsome messages...\n12:23\nsome messages...';
-      const output = '\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23</span>\n  \nsome messages...  \nsome messages...  \nsome messages...  \n--12:23--  \nsome messages...  \n--12:23--  \nsome messages...  \n</div>  \n';
+      // const input = 'taichi-m  12:23\nsome messages...\nsome messages...\nsome messages...\n12:23\nsome messages...\n12:23\nsome messages...';
+      // const output = '\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23</span>\n  \nsome messages...  \nsome messages...  \nsome messages...  \n--12:23--  \nsome messages...  \n--12:23--  \nsome messages...  \n</div>  \n';
+      const input = `
+taichi-m  12:23
+some messages...
+some messages...
+some messages...
+12:23
+some messages...
+12:23
+some messages...`;
+
+      const output = `
+
+<div class="grw-togetter">
+
+## **taichi-m**<span class="grw-togetter-time">  12:23</span>
+\s\s
+some messages...\s\s
+some messages...\s\s
+some messages...\s\s
+--12:23--\s\s
+some messages...\s\s
+--12:23--\s\s
+some messages...\s\s
+</div>\s\s
+`;
 
       expect(reshapeContentsBody(input)).toBe(output);
     });
@@ -39,8 +102,23 @@ describe('reshapeContentsBody', () => {
 
   describe('Markdown and copied from Slack', () => {
     test('Reshape only after the first header', () => {
-      const input = 'some messages...\n\ntaichi-m  12:23 PM\nsome messages...';
-      const output = 'some messages...\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>\n  \nsome messages...  \n</div>  \n';
+      // const input = 'some messages...\n\ntaichi-m  12:23 PM\nsome messages...';
+      // const output = 'some messages...\n<div class="grw-togetter">\n\n## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>\n  \nsome messages...  \n</div>  \n';
+      const input = `
+some messages...
+
+taichi-m  12:23 PM
+some messages...`;
+
+      const output = `
+some messages...
+<div class="grw-togetter">
+
+## **taichi-m**<span class="grw-togetter-time">  12:23 PM</span>
+\s\s
+some messages...\s\s
+</div>\s\s
+`;
 
       expect(reshapeContentsBody(input)).toBe(output);
     });

+ 5 - 0
yarn.lock

@@ -569,6 +569,11 @@
   dependencies:
     "@babel/types" "^7.8.3"
 
+"@babel/helper-validator-identifier@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
+  integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+
 "@babel/helper-wrap-function@^7.1.0":
   version "7.2.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"