@powerhousedao/network-admin 0.0.64 → 1.0.0-dev.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 (481) hide show
  1. package/dist/document-models/document-models.d.ts.map +1 -1
  2. package/dist/document-models/document-models.js +0 -2
  3. package/dist/document-models/index.d.ts +0 -1
  4. package/dist/document-models/index.d.ts.map +1 -1
  5. package/dist/document-models/index.js +0 -1
  6. package/dist/document-models/network-profile/gen/document-model.d.ts.map +1 -1
  7. package/dist/document-models/network-profile/gen/document-model.js +84 -84
  8. package/dist/document-models/network-profile/gen/ph-factories.d.ts.map +1 -1
  9. package/dist/document-models/network-profile/gen/ph-factories.js +0 -2
  10. package/dist/document-models/network-profile/gen/reducer.d.ts +0 -1
  11. package/dist/document-models/network-profile/gen/reducer.d.ts.map +1 -1
  12. package/dist/document-models/network-profile/gen/schema/types.d.ts +2 -6
  13. package/dist/document-models/network-profile/gen/schema/types.d.ts.map +1 -1
  14. package/dist/document-models/network-profile/gen/schema/zod.d.ts +2 -8
  15. package/dist/document-models/network-profile/gen/schema/zod.d.ts.map +1 -1
  16. package/dist/document-models/network-profile/gen/schema/zod.js +2 -6
  17. package/dist/document-models/network-profile/gen/utils.d.ts.map +1 -1
  18. package/dist/document-models/network-profile/gen/utils.js +1 -3
  19. package/dist/document-models/network-profile/hooks.d.ts +2 -2
  20. package/dist/document-models/network-profile/hooks.d.ts.map +1 -1
  21. package/dist/document-models/network-profile/module.d.ts +1 -1
  22. package/dist/document-models/network-profile/module.d.ts.map +1 -1
  23. package/dist/document-models/network-profile/module.js +1 -1
  24. package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts +1 -0
  25. package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts.map +1 -1
  26. package/dist/document-models/network-profile/src/reducers/network-profile-management.js +18 -27
  27. package/dist/document-models/network-profile/src/tests/document-model.test.d.ts +0 -4
  28. package/dist/document-models/network-profile/src/tests/document-model.test.d.ts.map +1 -1
  29. package/dist/document-models/network-profile/src/tests/document-model.test.js +6 -92
  30. package/dist/document-models/network-profile/src/tests/network-profile-management.test.js +115 -69
  31. package/dist/document-models/payment-terms/actions.d.ts +2 -1
  32. package/dist/document-models/payment-terms/actions.d.ts.map +1 -1
  33. package/dist/document-models/payment-terms/gen/clauses/error.d.ts +40 -1
  34. package/dist/document-models/payment-terms/gen/clauses/error.d.ts.map +1 -1
  35. package/dist/document-models/payment-terms/gen/clauses/error.js +32 -1
  36. package/dist/document-models/payment-terms/gen/document-model.d.ts.map +1 -1
  37. package/dist/document-models/payment-terms/gen/document-model.js +180 -89
  38. package/dist/document-models/payment-terms/gen/milestones/error.d.ts +26 -1
  39. package/dist/document-models/payment-terms/gen/milestones/error.d.ts.map +1 -1
  40. package/dist/document-models/payment-terms/gen/milestones/error.js +18 -1
  41. package/dist/document-models/payment-terms/gen/ph-factories.d.ts.map +1 -1
  42. package/dist/document-models/payment-terms/gen/ph-factories.js +2 -1
  43. package/dist/document-models/payment-terms/gen/reducer.d.ts +0 -1
  44. package/dist/document-models/payment-terms/gen/reducer.d.ts.map +1 -1
  45. package/dist/document-models/payment-terms/gen/reducer.js +9 -4
  46. package/dist/document-models/payment-terms/gen/schema/types.d.ts +29 -14
  47. package/dist/document-models/payment-terms/gen/schema/types.d.ts.map +1 -1
  48. package/dist/document-models/payment-terms/gen/schema/zod.d.ts +12 -36
  49. package/dist/document-models/payment-terms/gen/schema/zod.d.ts.map +1 -1
  50. package/dist/document-models/payment-terms/gen/schema/zod.js +55 -29
  51. package/dist/document-models/payment-terms/gen/terms/actions.d.ts +9 -5
  52. package/dist/document-models/payment-terms/gen/terms/actions.d.ts.map +1 -1
  53. package/dist/document-models/payment-terms/gen/terms/creators.d.ts +4 -3
  54. package/dist/document-models/payment-terms/gen/terms/creators.d.ts.map +1 -1
  55. package/dist/document-models/payment-terms/gen/terms/creators.js +3 -2
  56. package/dist/document-models/payment-terms/gen/terms/operations.d.ts +3 -2
  57. package/dist/document-models/payment-terms/gen/terms/operations.d.ts.map +1 -1
  58. package/dist/document-models/payment-terms/gen/utils.d.ts.map +1 -1
  59. package/dist/document-models/payment-terms/gen/utils.js +3 -2
  60. package/dist/document-models/payment-terms/hooks.d.ts +2 -2
  61. package/dist/document-models/payment-terms/hooks.d.ts.map +1 -1
  62. package/dist/document-models/payment-terms/module.d.ts +1 -1
  63. package/dist/document-models/payment-terms/module.d.ts.map +1 -1
  64. package/dist/document-models/payment-terms/module.js +1 -1
  65. package/dist/document-models/payment-terms/src/reducers/clauses.d.ts +1 -0
  66. package/dist/document-models/payment-terms/src/reducers/clauses.d.ts.map +1 -1
  67. package/dist/document-models/payment-terms/src/reducers/clauses.js +15 -13
  68. package/dist/document-models/payment-terms/src/reducers/milestones.d.ts +1 -0
  69. package/dist/document-models/payment-terms/src/reducers/milestones.d.ts.map +1 -1
  70. package/dist/document-models/payment-terms/src/reducers/milestones.js +12 -10
  71. package/dist/document-models/payment-terms/src/reducers/terms.d.ts +1 -0
  72. package/dist/document-models/payment-terms/src/reducers/terms.d.ts.map +1 -1
  73. package/dist/document-models/payment-terms/src/reducers/terms.js +24 -14
  74. package/dist/document-models/payment-terms/src/tests/clauses.test.js +21 -26
  75. package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts +0 -4
  76. package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts.map +1 -1
  77. package/dist/document-models/payment-terms/src/tests/document-model.test.js +6 -92
  78. package/dist/document-models/payment-terms/src/tests/milestones.test.js +19 -22
  79. package/dist/document-models/payment-terms/src/tests/terms.test.js +29 -24
  80. package/dist/document-models/payment-terms/tests/terms.test.js +15 -5
  81. package/dist/document-models/request-for-proposals/gen/document-model.js +4 -4
  82. package/dist/document-models/request-for-proposals/gen/ph-factories.d.ts.map +1 -1
  83. package/dist/document-models/request-for-proposals/gen/ph-factories.js +4 -6
  84. package/dist/document-models/request-for-proposals/gen/reducer.d.ts +0 -1
  85. package/dist/document-models/request-for-proposals/gen/reducer.d.ts.map +1 -1
  86. package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts +9 -64
  87. package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts.map +1 -1
  88. package/dist/document-models/request-for-proposals/gen/utils.d.ts.map +1 -1
  89. package/dist/document-models/request-for-proposals/gen/utils.js +5 -7
  90. package/dist/document-models/request-for-proposals/hooks.d.ts +2 -2
  91. package/dist/document-models/request-for-proposals/hooks.d.ts.map +1 -1
  92. package/dist/document-models/request-for-proposals/module.d.ts +1 -1
  93. package/dist/document-models/request-for-proposals/module.d.ts.map +1 -1
  94. package/dist/document-models/request-for-proposals/module.js +1 -1
  95. package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts +1 -0
  96. package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts.map +1 -1
  97. package/dist/document-models/request-for-proposals/src/reducers/contex-document.js +4 -3
  98. package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts +1 -0
  99. package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts.map +1 -1
  100. package/dist/document-models/request-for-proposals/src/reducers/proposals.js +5 -4
  101. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts +1 -0
  102. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts.map +1 -1
  103. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.js +3 -2
  104. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts +1 -2
  105. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts.map +1 -1
  106. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.js +181 -24
  107. package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts +0 -4
  108. package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts.map +1 -1
  109. package/dist/document-models/request-for-proposals/src/tests/document-model.test.js +6 -92
  110. package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts +1 -2
  111. package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts.map +1 -1
  112. package/dist/document-models/request-for-proposals/src/tests/proposals.test.js +327 -33
  113. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts +1 -2
  114. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts.map +1 -1
  115. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.js +240 -15
  116. package/dist/document-models/workstream/gen/document-model.d.ts.map +1 -1
  117. package/dist/document-models/workstream/gen/document-model.js +16 -16
  118. package/dist/document-models/workstream/gen/reducer.d.ts +0 -1
  119. package/dist/document-models/workstream/gen/reducer.d.ts.map +1 -1
  120. package/dist/document-models/workstream/gen/schema/types.d.ts +1 -1
  121. package/dist/document-models/workstream/gen/schema/types.d.ts.map +1 -1
  122. package/dist/document-models/workstream/gen/schema/zod.d.ts +5 -35
  123. package/dist/document-models/workstream/gen/schema/zod.d.ts.map +1 -1
  124. package/dist/document-models/workstream/gen/utils.js +1 -1
  125. package/dist/document-models/workstream/hooks.d.ts +2 -2
  126. package/dist/document-models/workstream/hooks.d.ts.map +1 -1
  127. package/dist/document-models/workstream/module.d.ts +1 -1
  128. package/dist/document-models/workstream/module.d.ts.map +1 -1
  129. package/dist/document-models/workstream/module.js +1 -1
  130. package/dist/document-models/workstream/src/reducers/proposals.d.ts +1 -0
  131. package/dist/document-models/workstream/src/reducers/proposals.d.ts.map +1 -1
  132. package/dist/document-models/workstream/src/reducers/proposals.js +6 -83
  133. package/dist/document-models/workstream/src/reducers/workstream.d.ts +1 -0
  134. package/dist/document-models/workstream/src/reducers/workstream.d.ts.map +1 -1
  135. package/dist/document-models/workstream/src/reducers/workstream.js +7 -6
  136. package/dist/document-models/workstream/src/tests/document-model.test.d.ts +0 -4
  137. package/dist/document-models/workstream/src/tests/document-model.test.d.ts.map +1 -1
  138. package/dist/document-models/workstream/src/tests/document-model.test.js +3 -89
  139. package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts +5 -0
  140. package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts.map +1 -0
  141. package/dist/document-models/workstream/src/tests/proposals-reducers.test.js +318 -0
  142. package/dist/document-models/workstream/src/tests/proposals.test.js +25 -26
  143. package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts +5 -0
  144. package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts.map +1 -0
  145. package/dist/document-models/workstream/src/tests/workstream-reducers.test.js +210 -0
  146. package/dist/document-models/workstream/src/tests/workstream.test.js +29 -34
  147. package/dist/editors/hooks/useNetworkProfileDocument.d.ts +4 -0
  148. package/dist/editors/hooks/useNetworkProfileDocument.d.ts.map +1 -0
  149. package/dist/editors/hooks/useNetworkProfileDocument.js +8 -0
  150. package/dist/editors/hooks/usePaymentTermsDocument.d.ts +4 -0
  151. package/dist/editors/hooks/usePaymentTermsDocument.d.ts.map +1 -0
  152. package/dist/editors/hooks/usePaymentTermsDocument.js +8 -0
  153. package/dist/editors/hooks/useRequestForProposalsDocument.d.ts +4 -0
  154. package/dist/editors/hooks/useRequestForProposalsDocument.d.ts.map +1 -0
  155. package/dist/editors/hooks/useRequestForProposalsDocument.js +8 -0
  156. package/dist/editors/hooks/useWorkstreamDocument.d.ts +4 -0
  157. package/dist/editors/hooks/useWorkstreamDocument.d.ts.map +1 -0
  158. package/dist/editors/hooks/useWorkstreamDocument.js +8 -0
  159. package/dist/editors/index.d.ts +6 -6
  160. package/dist/editors/index.d.ts.map +1 -1
  161. package/dist/editors/index.js +6 -6
  162. package/dist/editors/network-admin/components/CreateDocument.d.ts.map +1 -1
  163. package/dist/editors/network-admin/components/CreateDocument.js +12 -8
  164. package/dist/editors/network-admin/components/DriveExplorer.d.ts +1 -1
  165. package/dist/editors/network-admin/components/DriveExplorer.d.ts.map +1 -1
  166. package/dist/editors/network-admin/components/DriveExplorer.js +230 -53
  167. package/dist/editors/network-admin/components/FolderTree.d.ts +1 -9
  168. package/dist/editors/network-admin/components/FolderTree.d.ts.map +1 -1
  169. package/dist/editors/network-admin/components/FolderTree.js +55 -216
  170. package/dist/editors/network-admin/components/icons/PaymentIcon.d.ts.map +1 -1
  171. package/dist/editors/network-admin/components/icons/RfpIcon.d.ts.map +1 -1
  172. package/dist/editors/network-admin/components/icons/SowIcon.d.ts.map +1 -1
  173. package/dist/editors/network-admin/components/icons/WorkstreamIcon.d.ts.map +1 -1
  174. package/dist/editors/network-admin/config.d.ts +0 -1
  175. package/dist/editors/network-admin/config.d.ts.map +1 -1
  176. package/dist/editors/network-admin/config.js +1 -1
  177. package/dist/editors/network-admin/editor.d.ts +1 -2
  178. package/dist/editors/network-admin/editor.d.ts.map +1 -1
  179. package/dist/editors/network-admin/editor.js +1 -4
  180. package/dist/editors/network-admin/index.d.ts +3 -0
  181. package/dist/editors/network-admin/index.d.ts.map +1 -0
  182. package/dist/editors/network-admin/index.js +10 -0
  183. package/dist/editors/network-profile/editor.d.ts +1 -1
  184. package/dist/editors/network-profile/editor.d.ts.map +1 -1
  185. package/dist/editors/network-profile/editor.js +13 -45
  186. package/dist/editors/network-profile/index.d.ts +4 -0
  187. package/dist/editors/network-profile/index.d.ts.map +1 -0
  188. package/dist/editors/network-profile/index.js +10 -0
  189. package/dist/editors/payment-terms/basic-terms-tab.d.ts +10 -0
  190. package/dist/editors/payment-terms/basic-terms-tab.d.ts.map +1 -0
  191. package/dist/editors/payment-terms/basic-terms-tab.js +89 -0
  192. package/dist/editors/payment-terms/clauses-tab.d.ts +12 -0
  193. package/dist/editors/payment-terms/clauses-tab.d.ts.map +1 -0
  194. package/dist/editors/payment-terms/clauses-tab.js +213 -0
  195. package/dist/editors/payment-terms/cost-materials-tab.d.ts +10 -0
  196. package/dist/editors/payment-terms/cost-materials-tab.d.ts.map +1 -0
  197. package/dist/editors/payment-terms/cost-materials-tab.js +63 -0
  198. package/dist/editors/payment-terms/editor.d.ts +2 -0
  199. package/dist/editors/payment-terms/editor.d.ts.map +1 -1
  200. package/dist/editors/payment-terms/editor.js +55 -39
  201. package/dist/editors/payment-terms/escrow-tab.d.ts +10 -0
  202. package/dist/editors/payment-terms/escrow-tab.d.ts.map +1 -0
  203. package/dist/editors/payment-terms/escrow-tab.js +57 -0
  204. package/dist/editors/payment-terms/evaluation-tab.d.ts +10 -0
  205. package/dist/editors/payment-terms/evaluation-tab.d.ts.map +1 -0
  206. package/dist/editors/payment-terms/evaluation-tab.js +63 -0
  207. package/dist/editors/payment-terms/index.d.ts +4 -0
  208. package/dist/editors/payment-terms/index.d.ts.map +1 -0
  209. package/dist/editors/payment-terms/index.js +10 -0
  210. package/dist/editors/payment-terms/milestones-tab.d.ts +10 -0
  211. package/dist/editors/payment-terms/milestones-tab.d.ts.map +1 -0
  212. package/dist/editors/payment-terms/milestones-tab.js +205 -0
  213. package/dist/editors/payment-terms/retainer-tab.d.ts +10 -0
  214. package/dist/editors/payment-terms/retainer-tab.d.ts.map +1 -0
  215. package/dist/editors/payment-terms/retainer-tab.js +91 -0
  216. package/dist/editors/request-for-proposals/editor.d.ts.map +1 -1
  217. package/dist/editors/request-for-proposals/editor.js +4 -4
  218. package/dist/editors/request-for-proposals/index.d.ts +4 -0
  219. package/dist/editors/request-for-proposals/index.d.ts.map +1 -0
  220. package/dist/editors/request-for-proposals/index.js +10 -0
  221. package/dist/editors/request-for-proposals/markdown-editor.d.ts.map +1 -1
  222. package/dist/editors/request-for-proposals/markdown-editor.js +3 -3
  223. package/dist/editors/workstream/editor.d.ts.map +1 -1
  224. package/dist/editors/workstream/editor.js +165 -290
  225. package/dist/editors/workstream/index.d.ts +4 -0
  226. package/dist/editors/workstream/index.d.ts.map +1 -0
  227. package/dist/editors/workstream/index.js +10 -0
  228. package/dist/editors/workstream/project-management-import.d.ts +3 -0
  229. package/dist/editors/workstream/project-management-import.d.ts.map +1 -0
  230. package/dist/editors/workstream/project-management-import.js +5 -0
  231. package/dist/index.d.ts +2 -2
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +4 -2
  234. package/dist/powerhouse.manifest.json +6 -27
  235. package/dist/processors/factory.d.ts +1 -1
  236. package/dist/processors/factory.d.ts.map +1 -1
  237. package/dist/processors/factory.js +1 -1
  238. package/dist/processors/index.d.ts +1 -1
  239. package/dist/processors/index.d.ts.map +1 -1
  240. package/dist/processors/index.js +1 -1
  241. package/dist/processors/workstreams/factory.d.ts.map +1 -1
  242. package/dist/processors/workstreams/factory.js +1 -4
  243. package/dist/processors/workstreams/index.d.ts +2 -4
  244. package/dist/processors/workstreams/index.d.ts.map +1 -1
  245. package/dist/processors/workstreams/index.js +43 -102
  246. package/dist/processors/workstreams/migrations.d.ts.map +1 -1
  247. package/dist/processors/workstreams/migrations.js +15 -12
  248. package/dist/scripts/sow-mirror/mirror_sow_state.js +114 -119
  249. package/dist/style.css +6885 -6085
  250. package/dist/subgraphs/index.d.ts +5 -1
  251. package/dist/subgraphs/index.d.ts.map +1 -1
  252. package/dist/subgraphs/index.js +5 -1
  253. package/dist/subgraphs/network-profile/index.d.ts +11 -0
  254. package/dist/subgraphs/network-profile/index.d.ts.map +1 -0
  255. package/dist/subgraphs/network-profile/index.js +11 -0
  256. package/dist/subgraphs/network-profile/resolvers.d.ts.map +1 -0
  257. package/dist/subgraphs/network-profile/resolvers.js +205 -0
  258. package/dist/subgraphs/network-profile/schema.d.ts.map +1 -0
  259. package/dist/subgraphs/network-profile/schema.js +139 -0
  260. package/dist/subgraphs/networks/resolvers.d.ts +2 -2
  261. package/dist/subgraphs/networks/resolvers.d.ts.map +1 -1
  262. package/dist/subgraphs/networks/resolvers.js +8 -138
  263. package/dist/subgraphs/networks/schema.d.ts.map +1 -1
  264. package/dist/subgraphs/networks/schema.js +1 -66
  265. package/dist/subgraphs/{builders-addon → payment-terms}/index.d.ts +1 -1
  266. package/dist/subgraphs/payment-terms/index.d.ts.map +1 -0
  267. package/dist/subgraphs/{builders-addon → payment-terms}/index.js +2 -2
  268. package/dist/subgraphs/payment-terms/resolvers.d.ts +3 -0
  269. package/dist/subgraphs/payment-terms/resolvers.d.ts.map +1 -0
  270. package/dist/subgraphs/payment-terms/resolvers.js +277 -0
  271. package/dist/subgraphs/payment-terms/schema.d.ts +3 -0
  272. package/dist/subgraphs/payment-terms/schema.d.ts.map +1 -0
  273. package/dist/subgraphs/payment-terms/schema.js +324 -0
  274. package/dist/subgraphs/request-for-proposals/index.d.ts +11 -0
  275. package/dist/subgraphs/request-for-proposals/index.d.ts.map +1 -0
  276. package/dist/subgraphs/request-for-proposals/index.js +11 -0
  277. package/dist/subgraphs/request-for-proposals/resolvers.d.ts +3 -0
  278. package/dist/subgraphs/request-for-proposals/resolvers.d.ts.map +1 -0
  279. package/dist/subgraphs/request-for-proposals/resolvers.js +145 -0
  280. package/dist/subgraphs/request-for-proposals/schema.d.ts +3 -0
  281. package/dist/subgraphs/request-for-proposals/schema.d.ts.map +1 -0
  282. package/dist/subgraphs/request-for-proposals/schema.js +232 -0
  283. package/dist/subgraphs/workstream/index.d.ts +11 -0
  284. package/dist/subgraphs/workstream/index.d.ts.map +1 -0
  285. package/dist/subgraphs/workstream/index.js +11 -0
  286. package/dist/subgraphs/workstream/resolvers.d.ts +3 -0
  287. package/dist/subgraphs/workstream/resolvers.d.ts.map +1 -0
  288. package/dist/subgraphs/workstream/resolvers.js +181 -0
  289. package/dist/subgraphs/workstream/schema.d.ts +3 -0
  290. package/dist/subgraphs/workstream/schema.d.ts.map +1 -0
  291. package/dist/subgraphs/workstream/schema.js +206 -0
  292. package/dist/subgraphs/workstreams/index.d.ts +1 -4
  293. package/dist/subgraphs/workstreams/index.d.ts.map +1 -1
  294. package/dist/subgraphs/workstreams/index.js +0 -6
  295. package/dist/subgraphs/workstreams/resolvers.d.ts.map +1 -1
  296. package/dist/subgraphs/workstreams/resolvers.js +30 -495
  297. package/dist/subgraphs/workstreams/schema.d.ts.map +1 -1
  298. package/dist/subgraphs/workstreams/schema.js +35 -228
  299. package/dist/vite.config.d.ts.map +1 -1
  300. package/dist/vite.config.js +1 -6
  301. package/dist/vitest.config.d.ts +3 -0
  302. package/dist/vitest.config.d.ts.map +1 -0
  303. package/dist/vitest.config.js +8 -0
  304. package/package.json +90 -56
  305. package/dist/document-models/builders/actions.d.ts +0 -14
  306. package/dist/document-models/builders/actions.d.ts.map +0 -1
  307. package/dist/document-models/builders/actions.js +0 -4
  308. package/dist/document-models/builders/gen/actions.d.ts +0 -4
  309. package/dist/document-models/builders/gen/actions.d.ts.map +0 -1
  310. package/dist/document-models/builders/gen/actions.js +0 -1
  311. package/dist/document-models/builders/gen/builders/actions.d.ts +0 -12
  312. package/dist/document-models/builders/gen/builders/actions.d.ts.map +0 -1
  313. package/dist/document-models/builders/gen/builders/actions.js +0 -1
  314. package/dist/document-models/builders/gen/builders/creators.d.ts +0 -5
  315. package/dist/document-models/builders/gen/builders/creators.d.ts.map +0 -1
  316. package/dist/document-models/builders/gen/builders/creators.js +0 -4
  317. package/dist/document-models/builders/gen/builders/error.d.ts +0 -2
  318. package/dist/document-models/builders/gen/builders/error.d.ts.map +0 -1
  319. package/dist/document-models/builders/gen/builders/error.js +0 -1
  320. package/dist/document-models/builders/gen/builders/operations.d.ts +0 -8
  321. package/dist/document-models/builders/gen/builders/operations.d.ts.map +0 -1
  322. package/dist/document-models/builders/gen/builders/operations.js +0 -1
  323. package/dist/document-models/builders/gen/creators.d.ts +0 -3
  324. package/dist/document-models/builders/gen/creators.d.ts.map +0 -1
  325. package/dist/document-models/builders/gen/creators.js +0 -2
  326. package/dist/document-models/builders/gen/document-model.d.ts +0 -3
  327. package/dist/document-models/builders/gen/document-model.d.ts.map +0 -1
  328. package/dist/document-models/builders/gen/document-model.js +0 -59
  329. package/dist/document-models/builders/gen/document-schema.d.ts +0 -44
  330. package/dist/document-models/builders/gen/document-schema.d.ts.map +0 -1
  331. package/dist/document-models/builders/gen/document-schema.js +0 -33
  332. package/dist/document-models/builders/gen/document-type.d.ts +0 -2
  333. package/dist/document-models/builders/gen/document-type.d.ts.map +0 -1
  334. package/dist/document-models/builders/gen/document-type.js +0 -1
  335. package/dist/document-models/builders/gen/index.d.ts +0 -12
  336. package/dist/document-models/builders/gen/index.d.ts.map +0 -1
  337. package/dist/document-models/builders/gen/index.js +0 -11
  338. package/dist/document-models/builders/gen/ph-factories.d.ts +0 -23
  339. package/dist/document-models/builders/gen/ph-factories.d.ts.map +0 -1
  340. package/dist/document-models/builders/gen/ph-factories.js +0 -47
  341. package/dist/document-models/builders/gen/reducer.d.ts +0 -3
  342. package/dist/document-models/builders/gen/reducer.d.ts.map +0 -1
  343. package/dist/document-models/builders/gen/reducer.js +0 -23
  344. package/dist/document-models/builders/gen/schema/index.d.ts +0 -3
  345. package/dist/document-models/builders/gen/schema/index.d.ts.map +0 -1
  346. package/dist/document-models/builders/gen/schema/index.js +0 -2
  347. package/dist/document-models/builders/gen/schema/types.d.ts +0 -158
  348. package/dist/document-models/builders/gen/schema/types.d.ts.map +0 -1
  349. package/dist/document-models/builders/gen/schema/types.js +0 -1
  350. package/dist/document-models/builders/gen/schema/zod.d.ts +0 -13
  351. package/dist/document-models/builders/gen/schema/zod.d.ts.map +0 -1
  352. package/dist/document-models/builders/gen/schema/zod.js +0 -21
  353. package/dist/document-models/builders/gen/types.d.ts +0 -12
  354. package/dist/document-models/builders/gen/types.d.ts.map +0 -1
  355. package/dist/document-models/builders/gen/types.js +0 -1
  356. package/dist/document-models/builders/gen/utils.d.ts +0 -15
  357. package/dist/document-models/builders/gen/utils.d.ts.map +0 -1
  358. package/dist/document-models/builders/gen/utils.js +0 -51
  359. package/dist/document-models/builders/hooks.d.ts +0 -14
  360. package/dist/document-models/builders/hooks.d.ts.map +0 -1
  361. package/dist/document-models/builders/hooks.js +0 -25
  362. package/dist/document-models/builders/index.d.ts +0 -6
  363. package/dist/document-models/builders/index.d.ts.map +0 -1
  364. package/dist/document-models/builders/index.js +0 -5
  365. package/dist/document-models/builders/module.d.ts +0 -5
  366. package/dist/document-models/builders/module.d.ts.map +0 -1
  367. package/dist/document-models/builders/module.js +0 -11
  368. package/dist/document-models/builders/src/index.d.ts +0 -2
  369. package/dist/document-models/builders/src/index.d.ts.map +0 -1
  370. package/dist/document-models/builders/src/index.js +0 -1
  371. package/dist/document-models/builders/src/reducers/builders.d.ts +0 -3
  372. package/dist/document-models/builders/src/reducers/builders.d.ts.map +0 -1
  373. package/dist/document-models/builders/src/reducers/builders.js +0 -8
  374. package/dist/document-models/builders/src/tests/builders.test.d.ts +0 -6
  375. package/dist/document-models/builders/src/tests/builders.test.d.ts.map +0 -1
  376. package/dist/document-models/builders/src/tests/builders.test.js +0 -29
  377. package/dist/document-models/builders/src/tests/document-model.test.d.ts +0 -10
  378. package/dist/document-models/builders/src/tests/document-model.test.d.ts.map +0 -1
  379. package/dist/document-models/builders/src/tests/document-model.test.js +0 -104
  380. package/dist/document-models/builders/src/utils.d.ts +0 -2
  381. package/dist/document-models/builders/src/utils.d.ts.map +0 -1
  382. package/dist/document-models/builders/src/utils.js +0 -1
  383. package/dist/document-models/builders/tests/builders.test.d.ts +0 -2
  384. package/dist/document-models/builders/tests/builders.test.d.ts.map +0 -1
  385. package/dist/document-models/builders/tests/builders.test.js +0 -25
  386. package/dist/document-models/builders/tests/document-model.test.d.ts +0 -10
  387. package/dist/document-models/builders/tests/document-model.test.d.ts.map +0 -1
  388. package/dist/document-models/builders/tests/document-model.test.js +0 -104
  389. package/dist/document-models/builders/utils.d.ts +0 -14
  390. package/dist/document-models/builders/utils.d.ts.map +0 -1
  391. package/dist/document-models/builders/utils.js +0 -7
  392. package/dist/document-models/network-profile/gen/document-schema.d.ts +0 -80
  393. package/dist/document-models/network-profile/gen/document-schema.d.ts.map +0 -1
  394. package/dist/document-models/payment-terms/gen/document-schema.d.ts +0 -95
  395. package/dist/document-models/payment-terms/gen/document-schema.d.ts.map +0 -1
  396. package/dist/document-models/request-for-proposals/gen/document-schema.d.ts +0 -83
  397. package/dist/document-models/request-for-proposals/gen/document-schema.d.ts.map +0 -1
  398. package/dist/document-models/workstream/gen/document-schema.d.ts +0 -71
  399. package/dist/document-models/workstream/gen/document-schema.d.ts.map +0 -1
  400. package/dist/editors/builders/editor.d.ts +0 -3
  401. package/dist/editors/builders/editor.d.ts.map +0 -1
  402. package/dist/editors/builders/editor.js +0 -285
  403. package/dist/editors/builders/hooks/useRemoteBuilderProfiles.d.ts +0 -20
  404. package/dist/editors/builders/hooks/useRemoteBuilderProfiles.d.ts.map +0 -1
  405. package/dist/editors/builders/hooks/useRemoteBuilderProfiles.js +0 -57
  406. package/dist/editors/builders/module.d.ts +0 -4
  407. package/dist/editors/builders/module.d.ts.map +0 -1
  408. package/dist/editors/builders/module.js +0 -10
  409. package/dist/editors/builders/utils/graphql-client.d.ts +0 -41
  410. package/dist/editors/builders/utils/graphql-client.d.ts.map +0 -1
  411. package/dist/editors/builders/utils/graphql-client.js +0 -189
  412. package/dist/editors/editors.d.ts +0 -3
  413. package/dist/editors/editors.d.ts.map +0 -1
  414. package/dist/editors/editors.js +0 -14
  415. package/dist/editors/network-admin/components/DriveContents.d.ts +0 -3
  416. package/dist/editors/network-admin/components/DriveContents.d.ts.map +0 -1
  417. package/dist/editors/network-admin/components/DriveContents.js +0 -10
  418. package/dist/editors/network-admin/components/EmptyState.d.ts +0 -3
  419. package/dist/editors/network-admin/components/EmptyState.d.ts.map +0 -1
  420. package/dist/editors/network-admin/components/EmptyState.js +0 -10
  421. package/dist/editors/network-admin/components/Files.d.ts +0 -3
  422. package/dist/editors/network-admin/components/Files.d.ts.map +0 -1
  423. package/dist/editors/network-admin/components/Files.js +0 -12
  424. package/dist/editors/network-admin/components/Folders.d.ts +0 -3
  425. package/dist/editors/network-admin/components/Folders.d.ts.map +0 -1
  426. package/dist/editors/network-admin/components/Folders.js +0 -12
  427. package/dist/editors/network-admin/components/NavigationBreadcrumbs.d.ts +0 -3
  428. package/dist/editors/network-admin/components/NavigationBreadcrumbs.d.ts.map +0 -1
  429. package/dist/editors/network-admin/components/NavigationBreadcrumbs.js +0 -6
  430. package/dist/editors/network-admin/module.d.ts +0 -4
  431. package/dist/editors/network-admin/module.d.ts.map +0 -1
  432. package/dist/editors/network-admin/module.js +0 -10
  433. package/dist/editors/network-profile/components/EditName.d.ts +0 -3
  434. package/dist/editors/network-profile/components/EditName.d.ts.map +0 -1
  435. package/dist/editors/network-profile/components/EditName.js +0 -31
  436. package/dist/editors/network-profile/module.d.ts +0 -4
  437. package/dist/editors/network-profile/module.d.ts.map +0 -1
  438. package/dist/editors/network-profile/module.js +0 -10
  439. package/dist/editors/payment-terms/components/clauses-section.d.ts +0 -12
  440. package/dist/editors/payment-terms/components/clauses-section.d.ts.map +0 -1
  441. package/dist/editors/payment-terms/components/clauses-section.js +0 -269
  442. package/dist/editors/payment-terms/components/escrow-section.d.ts +0 -13
  443. package/dist/editors/payment-terms/components/escrow-section.d.ts.map +0 -1
  444. package/dist/editors/payment-terms/components/escrow-section.js +0 -72
  445. package/dist/editors/payment-terms/components/evaluation-section.d.ts +0 -13
  446. package/dist/editors/payment-terms/components/evaluation-section.d.ts.map +0 -1
  447. package/dist/editors/payment-terms/components/evaluation-section.js +0 -94
  448. package/dist/editors/payment-terms/components/header-section.d.ts +0 -16
  449. package/dist/editors/payment-terms/components/header-section.d.ts.map +0 -1
  450. package/dist/editors/payment-terms/components/header-section.js +0 -67
  451. package/dist/editors/payment-terms/components/milestones-section.d.ts +0 -11
  452. package/dist/editors/payment-terms/components/milestones-section.d.ts.map +0 -1
  453. package/dist/editors/payment-terms/components/milestones-section.js +0 -236
  454. package/dist/editors/payment-terms/components/parties-section.d.ts +0 -11
  455. package/dist/editors/payment-terms/components/parties-section.d.ts.map +0 -1
  456. package/dist/editors/payment-terms/components/parties-section.js +0 -36
  457. package/dist/editors/payment-terms/components/payment-config-section.d.ts +0 -11
  458. package/dist/editors/payment-terms/components/payment-config-section.d.ts.map +0 -1
  459. package/dist/editors/payment-terms/components/payment-config-section.js +0 -68
  460. package/dist/editors/payment-terms/components/time-materials-section.d.ts +0 -11
  461. package/dist/editors/payment-terms/components/time-materials-section.d.ts.map +0 -1
  462. package/dist/editors/payment-terms/components/time-materials-section.js +0 -68
  463. package/dist/editors/payment-terms/module.d.ts +0 -4
  464. package/dist/editors/payment-terms/module.d.ts.map +0 -1
  465. package/dist/editors/payment-terms/module.js +0 -10
  466. package/dist/editors/request-for-proposals/components/EditName.d.ts +0 -3
  467. package/dist/editors/request-for-proposals/components/EditName.d.ts.map +0 -1
  468. package/dist/editors/request-for-proposals/components/EditName.js +0 -31
  469. package/dist/editors/request-for-proposals/module.d.ts +0 -4
  470. package/dist/editors/request-for-proposals/module.d.ts.map +0 -1
  471. package/dist/editors/request-for-proposals/module.js +0 -10
  472. package/dist/editors/workstream/module.d.ts +0 -4
  473. package/dist/editors/workstream/module.d.ts.map +0 -1
  474. package/dist/editors/workstream/module.js +0 -10
  475. package/dist/subgraphs/builders-addon/index.d.ts.map +0 -1
  476. package/dist/subgraphs/builders-addon/resolvers.d.ts.map +0 -1
  477. package/dist/subgraphs/builders-addon/resolvers.js +0 -376
  478. package/dist/subgraphs/builders-addon/schema.d.ts.map +0 -1
  479. package/dist/subgraphs/builders-addon/schema.js +0 -209
  480. /package/dist/subgraphs/{builders-addon → network-profile}/resolvers.d.ts +0 -0
  481. /package/dist/subgraphs/{builders-addon → network-profile}/schema.d.ts +0 -0
@@ -1,39 +1,333 @@
1
1
  /**
2
- * This is a scaffold file meant for customization:
3
- * - change it by adding new tests or modifying the existing ones
2
+ * Comprehensive tests for Proposals reducers
4
3
  */
5
- import { describe, it, expect } from "vitest";
6
- import { generateMock } from "@powerhousedao/codegen";
7
- import { reducer, utils, isRequestForProposalsDocument, addProposal, AddProposalInputSchema, changeProposalStatus, ChangeProposalStatusInputSchema, removeProposal, RemoveProposalInputSchema, } from "@powerhousedao/network-admin/document-models/request-for-proposals";
8
- describe("Proposals Operations", () => {
9
- it("should handle addProposal operation", () => {
10
- const document = utils.createDocument();
11
- const input = generateMock(AddProposalInputSchema());
12
- const updatedDocument = reducer(document, addProposal(input));
13
- expect(isRequestForProposalsDocument(updatedDocument)).toBe(true);
14
- expect(updatedDocument.operations.global).toHaveLength(1);
15
- expect(updatedDocument.operations.global[0].action.type).toBe("ADD_PROPOSAL");
16
- expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
- expect(updatedDocument.operations.global[0].index).toEqual(0);
4
+ import { describe, it, expect, beforeEach } from "vitest";
5
+ import utils from "../../gen/utils.js";
6
+ import { z, } from "../../gen/schema/index.js";
7
+ import { reducer } from "../../gen/reducer.js";
8
+ import * as creators from "../../gen/proposals/creators.js";
9
+ describe("Proposals Reducers - State Changes", () => {
10
+ let document;
11
+ beforeEach(() => {
12
+ document = utils.createDocument();
18
13
  });
19
- it("should handle changeProposalStatus operation", () => {
20
- const document = utils.createDocument();
21
- const input = generateMock(ChangeProposalStatusInputSchema());
22
- const updatedDocument = reducer(document, changeProposalStatus(input));
23
- expect(isRequestForProposalsDocument(updatedDocument)).toBe(true);
24
- expect(updatedDocument.operations.global).toHaveLength(1);
25
- expect(updatedDocument.operations.global[0].action.type).toBe("CHANGE_PROPOSAL_STATUS");
26
- expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
27
- expect(updatedDocument.operations.global[0].index).toEqual(0);
14
+ describe("addProposal", () => {
15
+ it("should add new proposal with all required fields", () => {
16
+ const input = {
17
+ rfpId: "rfp-123",
18
+ id: "proposal-456",
19
+ title: "Technical Solution Proposal",
20
+ summary: "Comprehensive technical solution for the RFP requirements",
21
+ proposalStatus: "SUBMITTED",
22
+ budgetEstimate: "$50,000",
23
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
24
+ submittedby: "vendor-789",
25
+ };
26
+ const updatedDocument = reducer(document, creators.addProposal(input));
27
+ expect(updatedDocument.state.global.proposals).toHaveLength(1);
28
+ const proposal = updatedDocument.state.global.proposals[0];
29
+ expect(proposal.id).toBe("proposal-456");
30
+ expect(proposal.title).toBe("Technical Solution Proposal");
31
+ expect(proposal.summary).toBe("Comprehensive technical solution for the RFP requirements");
32
+ expect(proposal.proposalStatus).toBe("SUBMITTED");
33
+ expect(proposal.budgetEstimate).toBe("$50,000");
34
+ expect(proposal.paymentTerms).toBe("MILESTONE_BASED_FIXED_PRICE");
35
+ expect(proposal.submittedby).toBe("vendor-789");
36
+ });
37
+ it("should add proposal with optional submittedby field as null", () => {
38
+ const input = {
39
+ rfpId: "rfp-123",
40
+ id: "proposal-456",
41
+ title: "Anonymous Proposal",
42
+ summary: "Proposal without submitter information",
43
+ proposalStatus: "SUBMITTED",
44
+ budgetEstimate: "$25,000",
45
+ paymentTerms: "RETAINER_BASED",
46
+ submittedby: null,
47
+ };
48
+ const updatedDocument = reducer(document, creators.addProposal(input));
49
+ const proposal = updatedDocument.state.global.proposals[0];
50
+ expect(proposal.submittedby).toBe(null);
51
+ });
52
+ it("should add multiple proposals", () => {
53
+ let currentDocument = document;
54
+ // Add first proposal
55
+ currentDocument = reducer(currentDocument, creators.addProposal({
56
+ rfpId: "rfp-123",
57
+ id: "proposal-1",
58
+ title: "First Proposal",
59
+ summary: "First vendor's solution",
60
+ proposalStatus: "SUBMITTED",
61
+ budgetEstimate: "$40,000",
62
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
63
+ }));
64
+ // Add second proposal
65
+ currentDocument = reducer(currentDocument, creators.addProposal({
66
+ rfpId: "rfp-123",
67
+ id: "proposal-2",
68
+ title: "Second Proposal",
69
+ summary: "Second vendor's solution",
70
+ proposalStatus: "UNDER_REVIEW",
71
+ budgetEstimate: "$45,000",
72
+ paymentTerms: "ESCROW",
73
+ }));
74
+ expect(currentDocument.state.global.proposals).toHaveLength(2);
75
+ expect(currentDocument.state.global.proposals[0].title).toBe("First Proposal");
76
+ expect(currentDocument.state.global.proposals[1].title).toBe("Second Proposal");
77
+ });
78
+ it("should handle different payment terms", () => {
79
+ const paymentTerms = [
80
+ "MILESTONE_BASED_FIXED_PRICE",
81
+ "MILESTONE_BASED_ADVANCE_PAYMENT",
82
+ "RETAINER_BASED",
83
+ "VARIABLE_COST",
84
+ "ESCROW",
85
+ ];
86
+ let currentDocument = document;
87
+ paymentTerms.forEach((term, index) => {
88
+ currentDocument = reducer(currentDocument, creators.addProposal({
89
+ rfpId: "rfp-123",
90
+ id: `proposal-${index}`,
91
+ title: `Proposal ${index + 1}`,
92
+ summary: `Proposal with ${term}`,
93
+ proposalStatus: "SUBMITTED",
94
+ budgetEstimate: `$${(index + 1) * 10000}`,
95
+ paymentTerms: term,
96
+ }));
97
+ });
98
+ expect(currentDocument.state.global.proposals).toHaveLength(5);
99
+ currentDocument.state.global.proposals.forEach((proposal, index) => {
100
+ expect(proposal.paymentTerms).toBe(paymentTerms[index]);
101
+ });
102
+ });
103
+ it("should handle different proposal statuses", () => {
104
+ const statuses = [
105
+ "SUBMITTED",
106
+ "OPENED",
107
+ "UNDER_REVIEW",
108
+ "NEEDS_REVISION",
109
+ "REVISED",
110
+ "APPROVED",
111
+ "CONDITIONALLY_APPROVED",
112
+ "REJECTED",
113
+ "WITHDRAWN",
114
+ ];
115
+ let currentDocument = document;
116
+ statuses.forEach((status, index) => {
117
+ currentDocument = reducer(currentDocument, creators.addProposal({
118
+ rfpId: "rfp-123",
119
+ id: `proposal-${index}`,
120
+ title: `Proposal ${index + 1}`,
121
+ summary: `Proposal with status ${status}`,
122
+ proposalStatus: status,
123
+ budgetEstimate: `$${(index + 1) * 10000}`,
124
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
125
+ }));
126
+ });
127
+ expect(currentDocument.state.global.proposals).toHaveLength(9);
128
+ currentDocument.state.global.proposals.forEach((proposal, index) => {
129
+ expect(proposal.proposalStatus).toBe(statuses[index]);
130
+ });
131
+ });
132
+ it("should handle special characters in title and summary", () => {
133
+ const input = {
134
+ rfpId: "rfp-123",
135
+ id: "proposal-456",
136
+ title: "Proposal with special chars: & < > \" '",
137
+ summary: "Summary with emojis: 🚀 💡 📊 and symbols: © ® ™",
138
+ proposalStatus: "SUBMITTED",
139
+ budgetEstimate: "$50,000",
140
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
141
+ };
142
+ const updatedDocument = reducer(document, creators.addProposal(input));
143
+ const proposal = updatedDocument.state.global.proposals[0];
144
+ expect(proposal.title).toBe("Proposal with special chars: & < > \" '");
145
+ expect(proposal.summary).toBe("Summary with emojis: 🚀 💡 📊 and symbols: © ® ™");
146
+ });
28
147
  });
29
- it("should handle removeProposal operation", () => {
30
- const document = utils.createDocument();
31
- const input = generateMock(RemoveProposalInputSchema());
32
- const updatedDocument = reducer(document, removeProposal(input));
33
- expect(isRequestForProposalsDocument(updatedDocument)).toBe(true);
34
- expect(updatedDocument.operations.global).toHaveLength(1);
35
- expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_PROPOSAL");
36
- expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
37
- expect(updatedDocument.operations.global[0].index).toEqual(0);
148
+ describe("changeProposalStatus", () => {
149
+ beforeEach(() => {
150
+ // Add some proposals to test status changes
151
+ document = reducer(document, creators.addProposal({
152
+ rfpId: "rfp-123",
153
+ id: "proposal-1",
154
+ title: "Proposal 1",
155
+ summary: "First proposal",
156
+ proposalStatus: "SUBMITTED",
157
+ budgetEstimate: "$40,000",
158
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
159
+ }));
160
+ document = reducer(document, creators.addProposal({
161
+ rfpId: "rfp-123",
162
+ id: "proposal-2",
163
+ title: "Proposal 2",
164
+ summary: "Second proposal",
165
+ proposalStatus: "UNDER_REVIEW",
166
+ budgetEstimate: "$45,000",
167
+ paymentTerms: "ESCROW",
168
+ }));
169
+ });
170
+ it("should change status of existing proposal", () => {
171
+ const input = {
172
+ proposalId: "proposal-1",
173
+ status: "APPROVED",
174
+ };
175
+ const updatedDocument = reducer(document, creators.changeProposalStatus(input));
176
+ const proposal = updatedDocument.state.global.proposals.find(p => p.id === "proposal-1");
177
+ expect(proposal.proposalStatus).toBe("APPROVED");
178
+ // Other proposal should remain unchanged
179
+ const otherProposal = updatedDocument.state.global.proposals.find(p => p.id === "proposal-2");
180
+ expect(otherProposal.proposalStatus).toBe("UNDER_REVIEW");
181
+ });
182
+ it("should handle status change to all possible statuses", () => {
183
+ const statuses = [
184
+ "SUBMITTED",
185
+ "OPENED",
186
+ "UNDER_REVIEW",
187
+ "NEEDS_REVISION",
188
+ "REVISED",
189
+ "APPROVED",
190
+ "CONDITIONALLY_APPROVED",
191
+ "REJECTED",
192
+ "WITHDRAWN",
193
+ ];
194
+ let currentDocument = document;
195
+ statuses.forEach((status) => {
196
+ currentDocument = reducer(currentDocument, creators.changeProposalStatus({
197
+ proposalId: "proposal-1",
198
+ status: status,
199
+ }));
200
+ });
201
+ const proposal = currentDocument.state.global.proposals.find(p => p.id === "proposal-1");
202
+ expect(proposal.proposalStatus).toBe("WITHDRAWN"); // Final status
203
+ });
204
+ it("should handle non-existent proposal ID gracefully", () => {
205
+ const input = {
206
+ proposalId: "non-existent-proposal",
207
+ status: "APPROVED",
208
+ };
209
+ const updatedDocument = reducer(document, creators.changeProposalStatus(input));
210
+ // All proposals should remain unchanged
211
+ const proposal1 = updatedDocument.state.global.proposals.find(p => p.id === "proposal-1");
212
+ const proposal2 = updatedDocument.state.global.proposals.find(p => p.id === "proposal-2");
213
+ expect(proposal1.proposalStatus).toBe("SUBMITTED");
214
+ expect(proposal2.proposalStatus).toBe("UNDER_REVIEW");
215
+ });
216
+ it("should handle status change on empty proposals array gracefully", () => {
217
+ const emptyDocument = utils.createDocument();
218
+ const input = {
219
+ proposalId: "any-proposal",
220
+ status: "APPROVED",
221
+ };
222
+ const updatedDocument = reducer(emptyDocument, creators.changeProposalStatus(input));
223
+ expect(updatedDocument.state.global.proposals).toHaveLength(0);
224
+ });
225
+ it("should preserve all other proposal fields when changing status", () => {
226
+ const input = {
227
+ proposalId: "proposal-1",
228
+ status: "APPROVED",
229
+ };
230
+ const updatedDocument = reducer(document, creators.changeProposalStatus(input));
231
+ const proposal = updatedDocument.state.global.proposals.find(p => p.id === "proposal-1");
232
+ expect(proposal.title).toBe("Proposal 1");
233
+ expect(proposal.summary).toBe("First proposal");
234
+ expect(proposal.budgetEstimate).toBe("$40,000");
235
+ expect(proposal.paymentTerms).toBe("MILESTONE_BASED_FIXED_PRICE");
236
+ expect(proposal.proposalStatus).toBe("APPROVED"); // Only this should change
237
+ });
238
+ });
239
+ describe("removeProposal", () => {
240
+ beforeEach(() => {
241
+ // Add some proposals to test removal
242
+ document = reducer(document, creators.addProposal({
243
+ rfpId: "rfp-123",
244
+ id: "proposal-1",
245
+ title: "Proposal 1",
246
+ summary: "First proposal",
247
+ proposalStatus: "SUBMITTED",
248
+ budgetEstimate: "$40,000",
249
+ paymentTerms: "MILESTONE_BASED_FIXED_PRICE",
250
+ }));
251
+ document = reducer(document, creators.addProposal({
252
+ rfpId: "rfp-123",
253
+ id: "proposal-2",
254
+ title: "Proposal 2",
255
+ summary: "Second proposal",
256
+ proposalStatus: "UNDER_REVIEW",
257
+ budgetEstimate: "$45,000",
258
+ paymentTerms: "ESCROW",
259
+ }));
260
+ document = reducer(document, creators.addProposal({
261
+ rfpId: "rfp-123",
262
+ id: "proposal-3",
263
+ title: "Proposal 3",
264
+ summary: "Third proposal",
265
+ proposalStatus: "APPROVED",
266
+ budgetEstimate: "$50,000",
267
+ paymentTerms: "RETAINER_BASED",
268
+ }));
269
+ });
270
+ it("should remove existing proposal by ID", () => {
271
+ const input = {
272
+ rfpId: "rfp-123",
273
+ id: "proposal-2",
274
+ };
275
+ const updatedDocument = reducer(document, creators.removeProposal(input));
276
+ expect(updatedDocument.state.global.proposals).toHaveLength(2);
277
+ const remainingIds = updatedDocument.state.global.proposals.map(p => p.id);
278
+ expect(remainingIds).toContain("proposal-1");
279
+ expect(remainingIds).toContain("proposal-3");
280
+ expect(remainingIds).not.toContain("proposal-2");
281
+ });
282
+ it("should handle removal of non-existent proposal gracefully", () => {
283
+ const input = {
284
+ rfpId: "rfp-123",
285
+ id: "non-existent-proposal",
286
+ };
287
+ const updatedDocument = reducer(document, creators.removeProposal(input));
288
+ // All original proposals should remain
289
+ expect(updatedDocument.state.global.proposals).toHaveLength(3);
290
+ const remainingIds = updatedDocument.state.global.proposals.map(p => p.id);
291
+ expect(remainingIds).toContain("proposal-1");
292
+ expect(remainingIds).toContain("proposal-2");
293
+ expect(remainingIds).toContain("proposal-3");
294
+ });
295
+ it("should handle removal from empty array gracefully", () => {
296
+ const emptyDocument = utils.createDocument();
297
+ const input = {
298
+ rfpId: "rfp-123",
299
+ id: "any-proposal",
300
+ };
301
+ const updatedDocument = reducer(emptyDocument, creators.removeProposal(input));
302
+ expect(updatedDocument.state.global.proposals).toHaveLength(0);
303
+ });
304
+ it("should remove first proposal correctly", () => {
305
+ const input = {
306
+ rfpId: "rfp-123",
307
+ id: "proposal-1",
308
+ };
309
+ const updatedDocument = reducer(document, creators.removeProposal(input));
310
+ expect(updatedDocument.state.global.proposals).toHaveLength(2);
311
+ expect(updatedDocument.state.global.proposals[0].id).toBe("proposal-2");
312
+ expect(updatedDocument.state.global.proposals[1].id).toBe("proposal-3");
313
+ });
314
+ it("should remove last proposal correctly", () => {
315
+ const input = {
316
+ rfpId: "rfp-123",
317
+ id: "proposal-3",
318
+ };
319
+ const updatedDocument = reducer(document, creators.removeProposal(input));
320
+ expect(updatedDocument.state.global.proposals).toHaveLength(2);
321
+ expect(updatedDocument.state.global.proposals[0].id).toBe("proposal-1");
322
+ expect(updatedDocument.state.global.proposals[1].id).toBe("proposal-2");
323
+ });
324
+ it("should remove all proposals when removing each one", () => {
325
+ let currentDocument = document;
326
+ // Remove all proposals one by one
327
+ currentDocument = reducer(currentDocument, creators.removeProposal({ rfpId: "rfp-123", id: "proposal-1" }));
328
+ currentDocument = reducer(currentDocument, creators.removeProposal({ rfpId: "rfp-123", id: "proposal-2" }));
329
+ currentDocument = reducer(currentDocument, creators.removeProposal({ rfpId: "rfp-123", id: "proposal-3" }));
330
+ expect(currentDocument.state.global.proposals).toHaveLength(0);
331
+ });
38
332
  });
39
333
  });
@@ -1,6 +1,5 @@
1
1
  /**
2
- * This is a scaffold file meant for customization:
3
- * - change it by adding new tests or modifying the existing ones
2
+ * Comprehensive tests for RFP State reducers
4
3
  */
5
4
  export {};
6
5
  //# sourceMappingURL=rfp-state.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rfp-state.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/request-for-proposals/src/tests/rfp-state.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"rfp-state.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/request-for-proposals/src/tests/rfp-state.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,19 +1,244 @@
1
1
  /**
2
- * This is a scaffold file meant for customization:
3
- * - change it by adding new tests or modifying the existing ones
2
+ * Comprehensive tests for RFP State reducers
4
3
  */
5
- import { describe, it, expect } from "vitest";
6
- import { generateMock } from "@powerhousedao/codegen";
7
- import { reducer, utils, isRequestForProposalsDocument, editRfp, EditRfpInputSchema, } from "@powerhousedao/network-admin/document-models/request-for-proposals";
8
- describe("RfpState Operations", () => {
9
- it("should handle editRfp operation", () => {
10
- const document = utils.createDocument();
11
- const input = generateMock(EditRfpInputSchema());
12
- const updatedDocument = reducer(document, editRfp(input));
13
- expect(isRequestForProposalsDocument(updatedDocument)).toBe(true);
14
- expect(updatedDocument.operations.global).toHaveLength(1);
15
- expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_RFP");
16
- expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
- expect(updatedDocument.operations.global[0].index).toEqual(0);
4
+ import { describe, it, expect, beforeEach } from "vitest";
5
+ import utils from "../../gen/utils.js";
6
+ import { z, } from "../../gen/schema/index.js";
7
+ import { reducer } from "../../gen/reducer.js";
8
+ import * as creators from "../../gen/rfp-state/creators.js";
9
+ describe("RFP State Reducers - State Changes", () => {
10
+ let document;
11
+ beforeEach(() => {
12
+ document = utils.createDocument();
13
+ });
14
+ describe("editRfp", () => {
15
+ it("should update all RFP fields when provided", () => {
16
+ const input = {
17
+ title: "New RFP Title",
18
+ summary: "Updated description for the RFP",
19
+ eligibilityCriteria: "Criteria 1",
20
+ evaluationCriteria: "Evaluation 1",
21
+ status: "OPEN_FOR_PROPOSALS",
22
+ deadline: "2024-12-31T23:59:59Z",
23
+ tags: ["technical", "urgent"],
24
+ budgetRange: {
25
+ min: 10000,
26
+ max: 50000,
27
+ currency: "USD",
28
+ },
29
+ };
30
+ const updatedDocument = reducer(document, creators.editRfp(input));
31
+ expect(updatedDocument.state.global.title).toBe("New RFP Title");
32
+ expect(updatedDocument.state.global.summary).toBe("Updated description for the RFP");
33
+ expect(updatedDocument.state.global.eligibilityCriteria).toEqual(["Criteria 1", "Criteria 2"]);
34
+ expect(updatedDocument.state.global.evaluationCriteria).toEqual(["Evaluation 1", "Evaluation 2"]);
35
+ expect(updatedDocument.state.global.status).toBe("OPEN_FOR_PROPOSALS");
36
+ expect(updatedDocument.state.global.deadline).toBe("2024-12-31T23:59:59Z");
37
+ expect(updatedDocument.state.global.tags).toEqual(["technical", "urgent"]);
38
+ expect(updatedDocument.state.global.budgetRange.min).toBe(10000);
39
+ expect(updatedDocument.state.global.budgetRange.max).toBe(50000);
40
+ expect(updatedDocument.state.global.budgetRange.currency).toBe("USD");
41
+ });
42
+ it("should update only provided fields, leaving others unchanged", () => {
43
+ // First set some initial values
44
+ const firstUpdate = reducer(document, creators.editRfp({
45
+ title: "Initial Title",
46
+ summary: "Initial description",
47
+ status: "DRAFT",
48
+ eligibilityCriteria: "Initial criteria",
49
+ }));
50
+ // Then update only some fields
51
+ const input = {
52
+ title: "Updated Title",
53
+ status: "OPEN_FOR_PROPOSALS",
54
+ tags: ["new-tag"],
55
+ };
56
+ const finalDocument = reducer(firstUpdate, creators.editRfp(input));
57
+ expect(finalDocument.state.global.title).toBe("Updated Title"); // Changed
58
+ expect(finalDocument.state.global.status).toBe("OPEN_FOR_PROPOSALS"); // Changed
59
+ expect(finalDocument.state.global.tags).toEqual(["new-tag"]); // Changed
60
+ expect(finalDocument.state.global.summary).toBe("Initial description"); // Unchanged
61
+ expect(finalDocument.state.global.eligibilityCriteria).toEqual(["Initial criteria"]); // Unchanged
62
+ });
63
+ it("should handle null/undefined values correctly", () => {
64
+ const input = {
65
+ title: "Required Title", // Title is required by reducer
66
+ summary: undefined,
67
+ status: "DRAFT",
68
+ eligibilityCriteria: null,
69
+ evaluationCriteria: undefined,
70
+ tags: null,
71
+ budgetRange: {
72
+ min: null,
73
+ max: undefined,
74
+ currency: null,
75
+ },
76
+ };
77
+ const updatedDocument = reducer(document, creators.editRfp(input));
78
+ expect(updatedDocument.state.global.title).toBe("Required Title");
79
+ expect(updatedDocument.state.global.summary).toBe(""); // Default value
80
+ expect(updatedDocument.state.global.status).toBe("DRAFT");
81
+ expect(updatedDocument.state.global.eligibilityCriteria).toEqual([]); // Default value
82
+ expect(updatedDocument.state.global.evaluationCriteria).toEqual([]); // Default value
83
+ expect(updatedDocument.state.global.tags).toBe(null);
84
+ expect(updatedDocument.state.global.budgetRange.min).toBe(null);
85
+ expect(updatedDocument.state.global.budgetRange.max).toBe(null);
86
+ expect(updatedDocument.state.global.budgetRange.currency).toBe(null);
87
+ });
88
+ it("should handle empty string values", () => {
89
+ const input = {
90
+ title: "",
91
+ summary: "",
92
+ status: "DRAFT",
93
+ eligibilityCriteria: "",
94
+ evaluationCriteria: "",
95
+ tags: [],
96
+ };
97
+ const updatedDocument = reducer(document, creators.editRfp(input));
98
+ expect(updatedDocument.state.global.title).toBe("");
99
+ expect(updatedDocument.state.global.summary).toBe("");
100
+ expect(updatedDocument.state.global.eligibilityCriteria).toEqual([]);
101
+ expect(updatedDocument.state.global.evaluationCriteria).toEqual([]);
102
+ expect(updatedDocument.state.global.tags).toEqual([]);
103
+ });
104
+ it("should handle all possible RFP statuses", () => {
105
+ const statuses = [
106
+ "DRAFT",
107
+ "REQUEST_FOR_COMMMENTS",
108
+ "CANCELED",
109
+ "OPEN_FOR_PROPOSALS",
110
+ "AWARDED",
111
+ "NOT_AWARDED",
112
+ "CLOSED",
113
+ ];
114
+ let currentDocument = document;
115
+ statuses.forEach((status) => {
116
+ currentDocument = reducer(currentDocument, creators.editRfp({
117
+ title: "Test Title", // Required by reducer
118
+ status: status,
119
+ }));
120
+ });
121
+ expect(currentDocument.state.global.status).toBe("CLOSED"); // Final status
122
+ });
123
+ it("should handle budget range updates correctly", () => {
124
+ const input = {
125
+ title: "Test Title", // Required by reducer
126
+ status: "DRAFT",
127
+ budgetRange: {
128
+ min: 15000,
129
+ max: 75000,
130
+ currency: "EUR",
131
+ },
132
+ };
133
+ const updatedDocument = reducer(document, creators.editRfp(input));
134
+ expect(updatedDocument.state.global.budgetRange.min).toBe(15000);
135
+ expect(updatedDocument.state.global.budgetRange.max).toBe(75000);
136
+ expect(updatedDocument.state.global.budgetRange.currency).toBe("EUR");
137
+ });
138
+ it("should handle partial budget range updates", () => {
139
+ // First set a complete budget range
140
+ let currentDocument = reducer(document, creators.editRfp({
141
+ title: "Test Title", // Required by reducer
142
+ status: "DRAFT",
143
+ budgetRange: {
144
+ min: 10000,
145
+ max: 50000,
146
+ currency: "USD",
147
+ },
148
+ }));
149
+ // Then update only some budget range fields
150
+ currentDocument = reducer(currentDocument, creators.editRfp({
151
+ title: "Test Title", // Required by reducer
152
+ status: "DRAFT",
153
+ budgetRange: {
154
+ min: 20000,
155
+ currency: "EUR",
156
+ },
157
+ }));
158
+ expect(currentDocument.state.global.budgetRange.min).toBe(20000);
159
+ expect(currentDocument.state.global.budgetRange.max).toBe(null); // Undefined becomes null
160
+ expect(currentDocument.state.global.budgetRange.currency).toBe("EUR");
161
+ });
162
+ it("should handle special characters in text fields", () => {
163
+ const input = {
164
+ title: "RFP with special chars: & < > \" '",
165
+ summary: "Description with emojis: 🚀 💡 📊 and symbols: © ® ™",
166
+ status: "DRAFT",
167
+ eligibilityCriteria: "Criteria with spaces & symbols!",
168
+ evaluationCriteria: "Evaluation with numbers: 1, 2, 3",
169
+ tags: ["tag-with-dashes", "tag_with_underscores", "tag with spaces"],
170
+ };
171
+ const updatedDocument = reducer(document, creators.editRfp(input));
172
+ expect(updatedDocument.state.global.title).toBe("RFP with special chars: & < > \" '");
173
+ expect(updatedDocument.state.global.summary).toBe("Description with emojis: 🚀 💡 📊 and symbols: © ® ™");
174
+ expect(updatedDocument.state.global.eligibilityCriteria).toEqual(["Criteria with spaces & symbols!"]);
175
+ expect(updatedDocument.state.global.evaluationCriteria).toEqual(["Evaluation with numbers: 1, 2, 3"]);
176
+ expect(updatedDocument.state.global.tags).toEqual(["tag-with-dashes", "tag_with_underscores", "tag with spaces"]);
177
+ });
178
+ it("should handle large arrays of criteria and tags", () => {
179
+ const largeCriteria = Array.from({ length: 100 }, (_, i) => `Criteria ${i + 1}`);
180
+ const largeTags = Array.from({ length: 50 }, (_, i) => `tag-${i + 1}`);
181
+ const input = {
182
+ title: "Test Title", // Required by reducer
183
+ status: "DRAFT",
184
+ eligibilityCriteria: largeCriteria.join(", "),
185
+ evaluationCriteria: largeCriteria.slice(0, 50).join(", "), // Different size
186
+ tags: largeTags,
187
+ };
188
+ const updatedDocument = reducer(document, creators.editRfp(input));
189
+ expect(updatedDocument.state.global.eligibilityCriteria).toHaveLength(100);
190
+ expect(updatedDocument.state.global.evaluationCriteria).toHaveLength(50);
191
+ expect(updatedDocument.state.global.tags).toHaveLength(50);
192
+ expect(updatedDocument.state.global.eligibilityCriteria[0]).toBe("Criteria 1");
193
+ expect(updatedDocument.state.global.eligibilityCriteria[99]).toBe("Criteria 100");
194
+ expect(updatedDocument.state.global.tags[0]).toBe("tag-1");
195
+ expect(updatedDocument.state.global.tags[49]).toBe("tag-50");
196
+ });
197
+ it("should handle ISO date strings correctly", () => {
198
+ const input = {
199
+ title: "Test Title", // Required by reducer
200
+ status: "DRAFT",
201
+ deadline: "2024-12-31T23:59:59.999Z",
202
+ };
203
+ const updatedDocument = reducer(document, creators.editRfp(input));
204
+ expect(updatedDocument.state.global.deadline).toBe("2024-12-31T23:59:59.999Z");
205
+ });
206
+ it("should handle empty budget range", () => {
207
+ const input = {
208
+ title: "Test Title", // Required by reducer
209
+ status: "DRAFT",
210
+ budgetRange: {
211
+ min: null,
212
+ max: null,
213
+ currency: null,
214
+ },
215
+ };
216
+ const updatedDocument = reducer(document, creators.editRfp(input));
217
+ expect(updatedDocument.state.global.budgetRange.min).toBe(null);
218
+ expect(updatedDocument.state.global.budgetRange.max).toBe(null);
219
+ expect(updatedDocument.state.global.budgetRange.currency).toBe(null);
220
+ });
221
+ it("should preserve existing budget range when not provided", () => {
222
+ // First set a budget range
223
+ let currentDocument = reducer(document, creators.editRfp({
224
+ title: "Test Title", // Required by reducer
225
+ status: "DRAFT",
226
+ budgetRange: {
227
+ min: 10000,
228
+ max: 50000,
229
+ currency: "USD",
230
+ },
231
+ }));
232
+ // Then update without budget range
233
+ currentDocument = reducer(currentDocument, creators.editRfp({
234
+ title: "Test Title", // Required by reducer
235
+ status: "OPEN_FOR_PROPOSALS",
236
+ }));
237
+ // Budget range should remain unchanged
238
+ expect(currentDocument.state.global.budgetRange.min).toBe(10000);
239
+ expect(currentDocument.state.global.budgetRange.max).toBe(50000);
240
+ expect(currentDocument.state.global.budgetRange.currency).toBe("USD");
241
+ expect(currentDocument.state.global.status).toBe("OPEN_FOR_PROPOSALS"); // Only status changed
242
+ });
18
243
  });
19
244
  });
@@ -1 +1 @@
1
- {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../document-models/workstream/gen/document-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,eAAO,MAAM,aAAa,EAAE,wBAsJ3B,CAAC"}
1
+ {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../document-models/workstream/gen/document-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,eAAO,MAAM,aAAa,EAAE,wBAuJ3B,CAAC"}