@openneuro/server 4.20.4 → 4.20.6-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/package.json +4 -6
  2. package/src/__mocks__/{config.js → config.ts} +5 -5
  3. package/src/app.ts +32 -31
  4. package/src/cache/item.ts +6 -7
  5. package/src/cache/types.ts +8 -8
  6. package/src/{config.js → config.ts} +6 -6
  7. package/src/datalad/__tests__/changelog.spec.ts +83 -0
  8. package/src/datalad/__tests__/dataset.spec.ts +109 -0
  9. package/src/datalad/__tests__/description.spec.ts +141 -0
  10. package/src/datalad/__tests__/files.spec.ts +77 -0
  11. package/src/datalad/__tests__/pagination.spec.ts +136 -0
  12. package/src/datalad/__tests__/{snapshots.spec.js → snapshots.spec.ts} +17 -17
  13. package/src/datalad/{analytics.js → analytics.ts} +4 -4
  14. package/src/datalad/{changelog.js → changelog.ts} +17 -14
  15. package/src/datalad/{dataset.js → dataset.ts} +95 -93
  16. package/src/datalad/{description.js → description.ts} +37 -37
  17. package/src/datalad/draft.ts +38 -0
  18. package/src/datalad/files.ts +26 -20
  19. package/src/datalad/{pagination.js → pagination.ts} +47 -47
  20. package/src/datalad/{readme.js → readme.ts} +13 -11
  21. package/src/datalad/{reexporter.js → reexporter.ts} +4 -4
  22. package/src/datalad/{snapshots.js → snapshots.ts} +56 -62
  23. package/src/datalad/{upload.js → upload.ts} +7 -5
  24. package/src/elasticsearch/elastic-client.ts +11 -0
  25. package/src/elasticsearch/reindex-dataset.ts +7 -7
  26. package/src/graphql/__tests__/__snapshots__/permissions.spec.ts.snap +5 -0
  27. package/src/graphql/__tests__/{comment.spec.js → comment.spec.ts} +17 -17
  28. package/src/graphql/__tests__/permissions.spec.ts +113 -0
  29. package/src/graphql/{permissions.js → permissions.ts} +14 -14
  30. package/src/graphql/resolvers/__tests__/brainlife.spec.ts +11 -11
  31. package/src/graphql/resolvers/__tests__/{dataset-search.spec.js → dataset-search.spec.ts} +25 -23
  32. package/src/graphql/resolvers/__tests__/dataset.spec.ts +175 -0
  33. package/src/graphql/resolvers/__tests__/derivatives.spec.ts +19 -19
  34. package/src/graphql/resolvers/__tests__/importRemoteDataset.spec.ts +20 -20
  35. package/src/graphql/resolvers/__tests__/permssions.spec.ts +35 -0
  36. package/src/graphql/resolvers/__tests__/snapshots.spec.ts +59 -0
  37. package/src/graphql/resolvers/__tests__/user.spec.ts +18 -0
  38. package/src/graphql/resolvers/brainlife.ts +4 -4
  39. package/src/graphql/resolvers/cache.ts +4 -4
  40. package/src/graphql/resolvers/{comment.js → comment.ts} +16 -16
  41. package/src/graphql/resolvers/{dataset-search.js → dataset-search.ts} +45 -43
  42. package/src/graphql/resolvers/{dataset.js → dataset.ts} +38 -52
  43. package/src/graphql/resolvers/datasetType.ts +3 -3
  44. package/src/graphql/resolvers/derivatives.ts +11 -11
  45. package/src/graphql/resolvers/description.ts +18 -0
  46. package/src/graphql/resolvers/{draft.js → draft.ts} +13 -13
  47. package/src/graphql/resolvers/{flaggedFiles.js → flaggedFiles.ts} +4 -4
  48. package/src/graphql/resolvers/{follow.js → follow.ts} +1 -1
  49. package/src/graphql/resolvers/git.ts +3 -3
  50. package/src/graphql/resolvers/history.ts +13 -0
  51. package/src/graphql/resolvers/importRemoteDataset.ts +12 -11
  52. package/src/graphql/resolvers/index.ts +25 -0
  53. package/src/graphql/resolvers/{issues.js → issues.ts} +9 -9
  54. package/src/graphql/resolvers/metadata.ts +8 -8
  55. package/src/graphql/resolvers/{mutation.js → mutation.ts} +26 -26
  56. package/src/graphql/resolvers/{newsletter.js → newsletter.ts} +2 -2
  57. package/src/graphql/resolvers/permissions.ts +15 -21
  58. package/src/graphql/resolvers/publish.ts +17 -0
  59. package/src/graphql/resolvers/query.ts +21 -0
  60. package/src/graphql/resolvers/{readme.js → readme.ts} +3 -3
  61. package/src/graphql/resolvers/{reexporter.js → reexporter.ts} +2 -2
  62. package/src/graphql/resolvers/relation.ts +5 -5
  63. package/src/graphql/resolvers/{reset.js → reset.ts} +2 -2
  64. package/src/graphql/resolvers/reviewer.ts +4 -4
  65. package/src/graphql/resolvers/{snapshots.js → snapshots.ts} +49 -49
  66. package/src/graphql/resolvers/{stars.js → stars.ts} +1 -1
  67. package/src/graphql/resolvers/summary.ts +3 -3
  68. package/src/graphql/resolvers/{upload.js → upload.ts} +5 -5
  69. package/src/graphql/resolvers/{user.js → user.ts} +16 -18
  70. package/src/graphql/resolvers/{validation.js → validation.ts} +12 -14
  71. package/src/graphql/{schema.js → schema.ts} +4 -6
  72. package/src/graphql/utils/{file.js → file.ts} +2 -2
  73. package/src/handlers/{comments.js → comments.ts} +11 -11
  74. package/src/handlers/{config.js → config.ts} +1 -1
  75. package/src/handlers/{datalad.js → datalad.ts} +22 -22
  76. package/src/handlers/{doi.js → doi.ts} +6 -6
  77. package/src/handlers/reviewer.ts +6 -6
  78. package/src/handlers/{sitemap.js → sitemap.ts} +19 -19
  79. package/src/handlers/stars.ts +11 -10
  80. package/src/handlers/{subscriptions.js → subscriptions.ts} +17 -16
  81. package/src/handlers/{users.js → users.ts} +3 -3
  82. package/src/libs/__tests__/apikey.spec.ts +25 -0
  83. package/src/libs/__tests__/datalad-service.spec.ts +27 -0
  84. package/src/libs/__tests__/{dataset.spec.js → dataset.spec.ts} +9 -9
  85. package/src/libs/{apikey.js → apikey.ts} +5 -5
  86. package/src/libs/authentication/__tests__/jwt.spec.ts +59 -0
  87. package/src/libs/authentication/{crypto.js → crypto.ts} +16 -16
  88. package/src/libs/authentication/google.ts +18 -0
  89. package/src/libs/authentication/jwt.ts +40 -33
  90. package/src/libs/authentication/{orcid.js → orcid.ts} +11 -11
  91. package/src/libs/authentication/{passport.js → passport.ts} +45 -30
  92. package/src/libs/authentication/{states.js → states.ts} +17 -20
  93. package/src/libs/{counter.js → counter.ts} +1 -1
  94. package/src/libs/{datalad-service.js → datalad-service.ts} +4 -4
  95. package/src/libs/dataset.ts +9 -0
  96. package/src/libs/doi/__tests__/__snapshots__/doi.spec.ts.snap +17 -0
  97. package/src/libs/doi/__tests__/doi.spec.ts +25 -0
  98. package/src/libs/doi/__tests__/normalize.spec.ts +19 -19
  99. package/src/libs/doi/{index.js → index.ts} +27 -21
  100. package/src/libs/doi/normalize.ts +2 -2
  101. package/src/libs/email/__tests__/index.spec.ts +14 -14
  102. package/src/libs/email/index.ts +4 -4
  103. package/src/libs/email/templates/__tests__/comment-created.spec.ts +12 -12
  104. package/src/libs/email/templates/__tests__/dataset-deleted.spec.ts +6 -6
  105. package/src/libs/email/templates/__tests__/owner-unsubscribed.spec.ts +6 -6
  106. package/src/libs/email/templates/__tests__/snapshot-created.spec.ts +9 -9
  107. package/src/libs/email/templates/__tests__/snapshot-reminder.spec.ts +7 -7
  108. package/src/libs/email/templates/comment-created.ts +2 -1
  109. package/src/libs/email/templates/dataset-deleted.ts +2 -1
  110. package/src/libs/email/templates/dataset-import-failed.ts +2 -1
  111. package/src/libs/email/templates/dataset-imported.ts +2 -1
  112. package/src/libs/email/templates/owner-unsubscribed.ts +2 -1
  113. package/src/libs/email/templates/snapshot-created.ts +2 -1
  114. package/src/libs/email/templates/snapshot-reminder.ts +2 -1
  115. package/src/libs/{notifications.js → notifications.ts} +100 -113
  116. package/src/libs/{orcid.js → orcid.ts} +20 -20
  117. package/src/libs/{redis.js → redis.ts} +6 -6
  118. package/src/models/__tests__/ingestDataset.spec.ts +15 -15
  119. package/src/models/analytics.ts +2 -2
  120. package/src/models/badAnnexObject.ts +6 -6
  121. package/src/models/comment.ts +10 -10
  122. package/src/models/counter.ts +2 -2
  123. package/src/models/dataset.ts +16 -16
  124. package/src/models/deletion.ts +3 -3
  125. package/src/models/deprecatedSnapshot.ts +2 -2
  126. package/src/models/doi.ts +2 -2
  127. package/src/models/file.ts +2 -2
  128. package/src/models/ingestDataset.ts +4 -4
  129. package/src/models/issue.ts +2 -2
  130. package/src/models/key.ts +2 -2
  131. package/src/models/mailgunIdentifier.ts +2 -2
  132. package/src/models/metadata.ts +3 -3
  133. package/src/models/newsletter.ts +3 -3
  134. package/src/models/notification.ts +2 -2
  135. package/src/models/permission.ts +4 -4
  136. package/src/models/reviewer.ts +7 -7
  137. package/src/models/snapshot.ts +2 -2
  138. package/src/models/stars.ts +6 -6
  139. package/src/models/subscription.ts +2 -2
  140. package/src/models/summary.ts +2 -2
  141. package/src/models/upload.ts +3 -3
  142. package/src/models/user.ts +4 -4
  143. package/src/{routes.js → routes.ts} +62 -62
  144. package/src/server.ts +9 -9
  145. package/src/utils/__tests__/datasetOrSnapshot.spec.ts +25 -25
  146. package/src/utils/__tests__/validateUrl.spec.ts +10 -10
  147. package/src/utils/datasetOrSnapshot.ts +2 -2
  148. package/src/utils/validateUrl.ts +1 -1
  149. package/src/datalad/__tests__/changelog.spec.js +0 -82
  150. package/src/datalad/__tests__/dataset.spec.js +0 -109
  151. package/src/datalad/__tests__/description.spec.js +0 -137
  152. package/src/datalad/__tests__/files.spec.js +0 -75
  153. package/src/datalad/__tests__/pagination.spec.js +0 -136
  154. package/src/datalad/draft.js +0 -37
  155. package/src/elasticsearch/elastic-client.js +0 -11
  156. package/src/graphql/__tests__/permissions.spec.js +0 -107
  157. package/src/graphql/pubsub.js +0 -5
  158. package/src/graphql/resolvers/__tests__/dataset.spec.js +0 -175
  159. package/src/graphql/resolvers/__tests__/permssions.spec.js +0 -34
  160. package/src/graphql/resolvers/__tests__/snapshots.spec.js +0 -58
  161. package/src/graphql/resolvers/__tests__/user.spec.js +0 -17
  162. package/src/graphql/resolvers/description.js +0 -29
  163. package/src/graphql/resolvers/history.js +0 -11
  164. package/src/graphql/resolvers/index.js +0 -25
  165. package/src/graphql/resolvers/publish.js +0 -17
  166. package/src/graphql/resolvers/query.js +0 -21
  167. package/src/graphql/resolvers/subscriptions.js +0 -81
  168. package/src/graphql/utils/publish-draft-update.js +0 -13
  169. package/src/libs/__tests__/apikey.spec.js +0 -24
  170. package/src/libs/__tests__/datalad-service.spec.js +0 -26
  171. package/src/libs/authentication/__tests__/jwt.spec.js +0 -23
  172. package/src/libs/authentication/globus.js +0 -11
  173. package/src/libs/authentication/google.js +0 -19
  174. package/src/libs/bidsId.js +0 -68
  175. package/src/libs/dataset.js +0 -9
  176. package/src/libs/doi/__tests__/doi.spec.js +0 -24
  177. package/src/libs/redis-pubsub.js +0 -5
  178. package/src/libs/request.js +0 -155
  179. package/src/libs/scitran.js +0 -25
  180. package/src/libs/subscription-server.js +0 -20
  181. package/src/libs/testing-utils.js +0 -17
  182. package/src/persistent/datasets/.gitignore +0 -3
  183. package/src/persistent/temp/.gitignore +0 -3
  184. /package/src/libs/__mocks__/{notifications.js → notifications.ts} +0 -0
  185. /package/src/libs/authentication/{verifyUser.js → verifyUser.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import request from 'superagent'
2
- import config from '../../config'
1
+ import request from "superagent"
2
+ import config from "../../config"
3
3
 
4
4
  export const template = ({
5
5
  doi,
@@ -7,13 +7,18 @@ export const template = ({
7
7
  title,
8
8
  year,
9
9
  resourceType,
10
- }) => `<?xml version="1.0" encoding="UTF-8"?>
10
+ }) =>
11
+ `<?xml version="1.0" encoding="UTF-8"?>
11
12
  <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
12
13
  <identifier identifierType="DOI">${doi}</identifier>
13
14
  <creators>
14
- ${creators
15
- .map(creator => `<creator><creatorName>${creator}</creatorName></creator>`)
16
- .join('')}
15
+ ${
16
+ creators
17
+ .map((creator) =>
18
+ `<creator><creatorName>${creator}</creatorName></creator>`
19
+ )
20
+ .join("")
21
+ }
17
22
  </creators>
18
23
  <titles>
19
24
  <title xml:lang="en-us">${title}</title>
@@ -28,46 +33,47 @@ export const template = ({
28
33
  * @param {string} doiConfig.username DOI service username
29
34
  * @param {string} doiConfig.password DOI service password
30
35
  */
31
- export const formatBasicAuth = doiConfig =>
32
- 'Basic ' +
33
- Buffer.from(doiConfig.username + ':' + doiConfig.password).toString('base64')
36
+ export const formatBasicAuth = (doiConfig) =>
37
+ "Basic " +
38
+ Buffer.from(doiConfig.username + ":" + doiConfig.password).toString("base64")
34
39
 
35
40
  export default {
36
41
  auth: formatBasicAuth(config.doi),
37
42
  createDOI(accNumber, snapshotId) {
38
- let doi = config.doi.prefix + '/openneuro.' + accNumber
43
+ let doi = config.doi.prefix + "/openneuro." + accNumber
39
44
  if (snapshotId) {
40
- doi = doi + '.v' + snapshotId
45
+ doi = doi + ".v" + snapshotId
41
46
  }
42
47
  return doi
43
48
  },
44
49
 
45
50
  async mintDOI(doi, url) {
46
51
  return await request
47
- .put(config.doi.url + 'doi/' + doi)
48
- .set('Authorization', this.auth)
49
- .set('Content-Type', 'text/plain;charset=UTF-8')
50
- .send('doi=' + doi + '\nurl=' + url)
52
+ .put(config.doi.url + "doi/" + doi)
53
+ .set("Authorization", this.auth)
54
+ .set("Content-Type", "text/plain;charset=UTF-8")
55
+ .send("doi=" + doi + "\nurl=" + url)
51
56
  },
52
57
 
53
58
  registerMetadata(context) {
54
59
  const xml = template(context)
55
60
  return request
56
- .post(config.doi.url + 'metadata/')
57
- .set('Authorization', this.auth)
58
- .set('Content-Type', 'application/xml;charset=UTF-8')
61
+ .post(config.doi.url + "metadata/")
62
+ .set("Authorization", this.auth)
63
+ .set("Content-Type", "application/xml;charset=UTF-8")
59
64
  .send(xml)
60
65
  },
61
66
 
62
67
  registerSnapshotDoi(datasetId, snapshotId, oldDesc) {
63
68
  const baseDoi = this.createDOI(datasetId, snapshotId)
64
- const url = `https://openneuro.org/datasets/${datasetId}/versions/${snapshotId}`
69
+ const url =
70
+ `https://openneuro.org/datasets/${datasetId}/versions/${snapshotId}`
65
71
  const context = {
66
72
  doi: baseDoi,
67
- creators: oldDesc.Authors.filter(x => x),
73
+ creators: oldDesc.Authors.filter((x) => x),
68
74
  title: oldDesc.Name,
69
75
  year: new Date().getFullYear(),
70
- resourceType: 'fMRI',
76
+ resourceType: "fMRI",
71
77
  }
72
78
  return this.registerMetadata(context)
73
79
  .then(() => {
@@ -6,11 +6,11 @@ export const normalizeDOI = (doi: string): string | null => {
6
6
  if (doi.match(DOIPattern)) {
7
7
  return doi
8
8
  }
9
- if (doi.toLowerCase().startsWith('doi:') && doi.slice(4).match(DOIPattern)) {
9
+ if (doi.toLowerCase().startsWith("doi:") && doi.slice(4).match(DOIPattern)) {
10
10
  return doi.slice(4)
11
11
  }
12
12
  if (
13
- doi.toLowerCase().startsWith('https://doi.org/') &&
13
+ doi.toLowerCase().startsWith("https://doi.org/") &&
14
14
  doi.slice(16).match(DOIPattern)
15
15
  ) {
16
16
  return doi.slice(16)
@@ -1,24 +1,24 @@
1
- import { vi } from 'vitest'
2
- import { mailjetFormat } from '../index'
1
+ import { vi } from "vitest"
2
+ import { mailjetFormat } from "../index"
3
3
 
4
- vi.mock('ioredis')
5
- vi.mock('../../../config.js')
4
+ vi.mock("ioredis")
5
+ vi.mock("../../../config.ts")
6
6
 
7
- describe('Mailjet formatter', () => {
8
- it('formats a message', () => {
7
+ describe("Mailjet formatter", () => {
8
+ it("formats a message", () => {
9
9
  const testMessage = {
10
- to: 'test@example.com',
11
- name: 'Test User',
12
- html: 'email content goes here',
13
- subject: 'subject line',
10
+ to: "test@example.com",
11
+ name: "Test User",
12
+ html: "email content goes here",
13
+ subject: "subject line",
14
14
  }
15
15
  expect(mailjetFormat(testMessage)).toEqual({
16
16
  Messages: [
17
17
  {
18
- From: { Email: 'notifications@example.com', Name: 'OpenNeuro' },
19
- HTMLPart: 'email content goes here',
20
- Subject: 'subject line',
21
- To: [{ Email: 'test@example.com', Name: 'Test User' }],
18
+ From: { Email: "notifications@example.com", Name: "OpenNeuro" },
19
+ HTMLPart: "email content goes here",
20
+ Subject: "subject line",
21
+ To: [{ Email: "test@example.com", Name: "Test User" }],
22
22
  },
23
23
  ],
24
24
  })
@@ -1,9 +1,9 @@
1
- import config from '../../config'
1
+ import config from "../../config"
2
2
 
3
3
  let transport
4
4
  let perform_api_call = true
5
5
  try {
6
- const mailjet = require('node-mailjet')
6
+ const mailjet = require("node-mailjet")
7
7
  transport = mailjet.connect(
8
8
  config.notifications.email.apiKey,
9
9
  config.notifications.email.secret,
@@ -17,7 +17,7 @@ export const mailjetFormat = (email: Record<string, string>) => ({
17
17
  {
18
18
  From: {
19
19
  Email: config.notifications.email.from,
20
- Name: 'OpenNeuro',
20
+ Name: "OpenNeuro",
21
21
  },
22
22
  To: [
23
23
  {
@@ -38,7 +38,7 @@ export const mailjetFormat = (email: Record<string, string>) => ({
38
38
  export const send = (email: Record<string, string>): Promise<Response> => {
39
39
  if (perform_api_call) {
40
40
  return transport
41
- .post('send', { version: 'v3.1', perform_api_call })
41
+ .post("send", { version: "v3.1", perform_api_call })
42
42
  .request(mailjetFormat(email))
43
43
  } else {
44
44
  // Mailjet is not configured, instead log emails
@@ -1,18 +1,18 @@
1
- import { commentCreated } from '../comment-created'
1
+ import { commentCreated } from "../comment-created"
2
2
 
3
- describe('email template -> comment created', () => {
4
- it('renders with expected arguments', () => {
3
+ describe("email template -> comment created", () => {
4
+ it("renders with expected arguments", () => {
5
5
  expect(
6
6
  commentCreated({
7
- siteUrl: 'https://openneuro.org',
8
- name: 'J. Doe',
9
- commentStatus: 'new',
10
- commentId: '12345',
11
- commentUserId: '56789',
12
- commentContent: 'Test comment, please ignore',
13
- datasetName: 'ds1245678',
14
- datasetLabel: 'Not Real Dataset',
15
- dateCreated: '2063-04-05',
7
+ siteUrl: "https://openneuro.org",
8
+ name: "J. Doe",
9
+ commentStatus: "new",
10
+ commentId: "12345",
11
+ commentUserId: "56789",
12
+ commentContent: "Test comment, please ignore",
13
+ datasetName: "ds1245678",
14
+ datasetLabel: "Not Real Dataset",
15
+ dateCreated: "2063-04-05",
16
16
  }),
17
17
  ).toMatchSnapshot()
18
18
  })
@@ -1,12 +1,12 @@
1
- import { datasetDeleted } from '../dataset-deleted'
1
+ import { datasetDeleted } from "../dataset-deleted"
2
2
 
3
- describe('email template -> comment created', () => {
4
- it('renders with expected arguments', () => {
3
+ describe("email template -> comment created", () => {
4
+ it("renders with expected arguments", () => {
5
5
  expect(
6
6
  datasetDeleted({
7
- siteUrl: 'https://openneuro.org',
8
- name: 'J. Doe',
9
- datasetName: 'ds1245678',
7
+ siteUrl: "https://openneuro.org",
8
+ name: "J. Doe",
9
+ datasetName: "ds1245678",
10
10
  }),
11
11
  ).toMatchSnapshot()
12
12
  })
@@ -1,12 +1,12 @@
1
- import { ownerUnsubscribed } from '../owner-unsubscribed'
1
+ import { ownerUnsubscribed } from "../owner-unsubscribed"
2
2
 
3
- describe('email template -> comment created', () => {
4
- it('renders with expected arguments', () => {
3
+ describe("email template -> comment created", () => {
4
+ it("renders with expected arguments", () => {
5
5
  expect(
6
6
  ownerUnsubscribed({
7
- siteUrl: 'https://openneuro.org',
8
- name: 'J. Doe',
9
- datasetName: 'ds1245678',
7
+ siteUrl: "https://openneuro.org",
8
+ name: "J. Doe",
9
+ datasetName: "ds1245678",
10
10
  }),
11
11
  ).toMatchSnapshot()
12
12
  })
@@ -1,15 +1,15 @@
1
- import { snapshotCreated } from '../snapshot-created'
1
+ import { snapshotCreated } from "../snapshot-created"
2
2
 
3
- describe('email template -> comment created', () => {
4
- it('renders with expected arguments', () => {
3
+ describe("email template -> comment created", () => {
4
+ it("renders with expected arguments", () => {
5
5
  expect(
6
6
  snapshotCreated({
7
- siteUrl: 'https://openneuro.org',
8
- name: 'J. Doe',
9
- datasetId: 'ds1245678',
10
- datasetLabel: 'Test Dataset Snapshot Created',
11
- versionNumber: '1.2.4',
12
- changelog: 'New changes...',
7
+ siteUrl: "https://openneuro.org",
8
+ name: "J. Doe",
9
+ datasetId: "ds1245678",
10
+ datasetLabel: "Test Dataset Snapshot Created",
11
+ versionNumber: "1.2.4",
12
+ changelog: "New changes...",
13
13
  }),
14
14
  ).toMatchSnapshot()
15
15
  })
@@ -1,13 +1,13 @@
1
- import { snapshotReminder } from '../snapshot-reminder'
1
+ import { snapshotReminder } from "../snapshot-reminder"
2
2
 
3
- describe('email template -> comment created', () => {
4
- it('renders with expected arguments', () => {
3
+ describe("email template -> comment created", () => {
4
+ it("renders with expected arguments", () => {
5
5
  expect(
6
6
  snapshotReminder({
7
- siteUrl: 'https://openneuro.org',
8
- name: 'J. Doe',
9
- datasetName: 'Reminding Dataset',
10
- datasetId: 'ds12345678',
7
+ siteUrl: "https://openneuro.org",
8
+ name: "J. Doe",
9
+ datasetName: "Reminding Dataset",
10
+ datasetId: "ds12345678",
11
11
  }),
12
12
  ).toMatchSnapshot()
13
13
  })
@@ -18,7 +18,8 @@ export const commentCreated = ({
18
18
  datasetName: string
19
19
  datasetLabel: string
20
20
  dateCreated: string
21
- }): string => `<html>
21
+ }): string =>
22
+ `<html>
22
23
  <head>
23
24
  <style>
24
25
  body {
@@ -6,7 +6,8 @@ export const datasetDeleted = ({
6
6
  siteUrl: string
7
7
  name: string
8
8
  datasetName: string
9
- }): string => `<html>
9
+ }): string =>
10
+ `<html>
10
11
  <head>
11
12
  <style>
12
13
  body {
@@ -10,7 +10,8 @@ export const datasetImportFailed = ({
10
10
  datasetId: string
11
11
  message: string
12
12
  retryUrl: string
13
- }): string => `<html>
13
+ }): string =>
14
+ `<html>
14
15
  <head>
15
16
  <style>
16
17
  body {
@@ -6,7 +6,8 @@ export const datasetImportEmail = ({
6
6
  siteUrl: string
7
7
  name: string
8
8
  datasetId: string
9
- }): string => `<html>
9
+ }): string =>
10
+ `<html>
10
11
  <head>
11
12
  <style>
12
13
  body {
@@ -6,7 +6,8 @@ export const ownerUnsubscribed = ({
6
6
  siteUrl: string
7
7
  name: string
8
8
  datasetName: string
9
- }): string => `<html>
9
+ }): string =>
10
+ `<html>
10
11
  <head>
11
12
  <style>
12
13
  body {
@@ -12,7 +12,8 @@ export const snapshotCreated = ({
12
12
  datasetId: string
13
13
  versionNumber: string
14
14
  changelog: string
15
- }): string => `<html>
15
+ }): string =>
16
+ `<html>
16
17
  <head>
17
18
  <style>
18
19
  body {
@@ -8,7 +8,8 @@ export const snapshotReminder = ({
8
8
  name: string
9
9
  datasetName: string
10
10
  datasetId: string
11
- }): string => `<html>
11
+ }): string =>
12
+ `<html>
12
13
  <head>
13
14
  <style>
14
15
  body {