atlassian-connect-descriptor 0.3.0.1 → 0.4.0.0
raw patch · 5 files changed
+49/−31 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.Connect.Descriptor: ConfluenceModules :: [WebPanel] -> ConfluenceModules
+ Data.Connect.Descriptor: ConfluenceModules :: Maybe [WebPanel] -> ConfluenceModules
- Data.Connect.Descriptor: JIRAModules :: [JIRAWebSection] -> [WebItem] -> [WebPanel] -> [JIRAPage] -> [JIRAPage] -> Maybe JIRAPage -> [JIRASearchRequestView] -> [JIRAGenericTabPanel] -> [JIRAGenericTabPanel] -> [JIRAGenericTabPanel] -> [JIRAProjectAdminTabPanel] -> [JIRAGenericTabPanel] -> [JIRAGenericTabPanel] -> [JIRAReport] -> [Webhook] -> [JIRAWorkflowPostFunction] -> [JIRAEntityProperties] -> JIRAModules
+ Data.Connect.Descriptor: JIRAModules :: Maybe [JIRAWebSection] -> Maybe [WebItem] -> Maybe [WebPanel] -> Maybe [JIRAPage] -> Maybe [JIRAPage] -> Maybe JIRAPage -> Maybe [JIRASearchRequestView] -> Maybe [JIRAGenericTabPanel] -> Maybe [JIRAGenericTabPanel] -> Maybe [JIRAGenericTabPanel] -> Maybe [JIRAProjectAdminTabPanel] -> Maybe [JIRAGenericTabPanel] -> Maybe [JIRAGenericTabPanel] -> Maybe [JIRAReport] -> Maybe [Webhook] -> Maybe [JIRAWorkflowPostFunction] -> Maybe [JIRAEntityProperties] -> JIRAModules
- Data.Connect.Descriptor: confluenceWebPanels :: ConfluenceModules -> [WebPanel]
+ Data.Connect.Descriptor: confluenceWebPanels :: ConfluenceModules -> Maybe [WebPanel]
- Data.Connect.Descriptor: jmAdminPages :: JIRAModules -> [JIRAPage]
+ Data.Connect.Descriptor: jmAdminPages :: JIRAModules -> Maybe [JIRAPage]
- Data.Connect.Descriptor: jmGeneralPages :: JIRAModules -> [JIRAPage]
+ Data.Connect.Descriptor: jmGeneralPages :: JIRAModules -> Maybe [JIRAPage]
- Data.Connect.Descriptor: jmJiraComponentTabPanels :: JIRAModules -> [JIRAGenericTabPanel]
+ Data.Connect.Descriptor: jmJiraComponentTabPanels :: JIRAModules -> Maybe [JIRAGenericTabPanel]
- Data.Connect.Descriptor: jmJiraEntityProperties :: JIRAModules -> [JIRAEntityProperties]
+ Data.Connect.Descriptor: jmJiraEntityProperties :: JIRAModules -> Maybe [JIRAEntityProperties]
- Data.Connect.Descriptor: jmJiraIssueTabPanels :: JIRAModules -> [JIRAGenericTabPanel]
+ Data.Connect.Descriptor: jmJiraIssueTabPanels :: JIRAModules -> Maybe [JIRAGenericTabPanel]
- Data.Connect.Descriptor: jmJiraProfileTabPanels :: JIRAModules -> [JIRAGenericTabPanel]
+ Data.Connect.Descriptor: jmJiraProfileTabPanels :: JIRAModules -> Maybe [JIRAGenericTabPanel]
- Data.Connect.Descriptor: jmJiraProjectAdminTabPanels :: JIRAModules -> [JIRAProjectAdminTabPanel]
+ Data.Connect.Descriptor: jmJiraProjectAdminTabPanels :: JIRAModules -> Maybe [JIRAProjectAdminTabPanel]
- Data.Connect.Descriptor: jmJiraProjectTabPanels :: JIRAModules -> [JIRAGenericTabPanel]
+ Data.Connect.Descriptor: jmJiraProjectTabPanels :: JIRAModules -> Maybe [JIRAGenericTabPanel]
- Data.Connect.Descriptor: jmJiraReports :: JIRAModules -> [JIRAReport]
+ Data.Connect.Descriptor: jmJiraReports :: JIRAModules -> Maybe [JIRAReport]
- Data.Connect.Descriptor: jmJiraSearchRequestViews :: JIRAModules -> [JIRASearchRequestView]
+ Data.Connect.Descriptor: jmJiraSearchRequestViews :: JIRAModules -> Maybe [JIRASearchRequestView]
- Data.Connect.Descriptor: jmJiraVersionTabPanels :: JIRAModules -> [JIRAGenericTabPanel]
+ Data.Connect.Descriptor: jmJiraVersionTabPanels :: JIRAModules -> Maybe [JIRAGenericTabPanel]
- Data.Connect.Descriptor: jmJiraWorkflowPostFunctions :: JIRAModules -> [JIRAWorkflowPostFunction]
+ Data.Connect.Descriptor: jmJiraWorkflowPostFunctions :: JIRAModules -> Maybe [JIRAWorkflowPostFunction]
- Data.Connect.Descriptor: jmWebItems :: JIRAModules -> [WebItem]
+ Data.Connect.Descriptor: jmWebItems :: JIRAModules -> Maybe [WebItem]
- Data.Connect.Descriptor: jmWebPanels :: JIRAModules -> [WebPanel]
+ Data.Connect.Descriptor: jmWebPanels :: JIRAModules -> Maybe [WebPanel]
- Data.Connect.Descriptor: jmWebSections :: JIRAModules -> [JIRAWebSection]
+ Data.Connect.Descriptor: jmWebSections :: JIRAModules -> Maybe [JIRAWebSection]
- Data.Connect.Descriptor: jmWebhooks :: JIRAModules -> [Webhook]
+ Data.Connect.Descriptor: jmWebhooks :: JIRAModules -> Maybe [Webhook]
Files
- atlassian-connect-descriptor.cabal +1/−1
- src/Data/Connect/Descriptor.hs +3/−3
- src/Data/Connect/Modules.hs +37/−19
- tests/DescriptorTest.hs +3/−3
- tests/ModulesTest.hs +5/−5
atlassian-connect-descriptor.cabal view
@@ -10,7 +10,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.3.0.1+version: 0.4.0.0 -- A short (one-line) description of the package. synopsis: Code that helps you create a valid Atlassian Connect Descriptor.
src/Data/Connect/Descriptor.hs view
@@ -43,7 +43,7 @@ > > exampleJIRAModules :: JIRAModules > exampleJIRAModules = emptyJIRAModules-> { jmWebPanels =+> { jmWebPanels = Just > [ WebPanel > { wpKey = "test-web-panel" > , wpName = simpleText "Test Web Panel"@@ -56,7 +56,7 @@ > , wpParams = noParams > } > ]-> , jmGeneralPages =+> , jmGeneralPages = Just > [ JIRAPage > { jiraPageKey = "test-general-page" > , jiraPageName = simpleText "Test General Page"@@ -72,7 +72,7 @@ > , jiraPageParams = noParams > } > ]-> , jmWebhooks =+> , jmWebhooks = Just > [ Webhook > { webhookEvent = JiraIssueDeleted > , webhookUrl = "/webhook/handle-deletion"
src/Data/Connect/Modules.hs view
@@ -100,23 +100,23 @@ -- | A collection of all of the JIRA Modules that you can define. For more documentation on which Modules are supported -- the Atlassian Connect framework please see 'Modules'. You can also find more documentation on each of the modules. data JIRAModules = JIRAModules- { jmWebSections :: [JIRAWebSection]- , jmWebItems :: [WebItem]- , jmWebPanels :: [WebPanel]- , jmGeneralPages :: [JIRAPage]- , jmAdminPages :: [JIRAPage]+ { jmWebSections :: Maybe [JIRAWebSection]+ , jmWebItems :: Maybe [WebItem]+ , jmWebPanels :: Maybe [WebPanel]+ , jmGeneralPages :: Maybe [JIRAPage]+ , jmAdminPages :: Maybe [JIRAPage] , jmConfigurePage :: Maybe JIRAPage- , jmJiraSearchRequestViews :: [JIRASearchRequestView]- , jmJiraProfileTabPanels :: [JIRAGenericTabPanel]- , jmJiraVersionTabPanels :: [JIRAGenericTabPanel]- , jmJiraProjectTabPanels :: [JIRAGenericTabPanel]- , jmJiraProjectAdminTabPanels :: [JIRAProjectAdminTabPanel]- , jmJiraIssueTabPanels :: [JIRAGenericTabPanel]- , jmJiraComponentTabPanels :: [JIRAGenericTabPanel]- , jmJiraReports :: [JIRAReport]- , jmWebhooks :: [Webhook]- , jmJiraWorkflowPostFunctions :: [JIRAWorkflowPostFunction]- , jmJiraEntityProperties :: [JIRAEntityProperties]+ , jmJiraSearchRequestViews :: Maybe [JIRASearchRequestView]+ , jmJiraProfileTabPanels :: Maybe [JIRAGenericTabPanel]+ , jmJiraVersionTabPanels :: Maybe [JIRAGenericTabPanel]+ , jmJiraProjectTabPanels :: Maybe [JIRAGenericTabPanel]+ , jmJiraProjectAdminTabPanels :: Maybe [JIRAProjectAdminTabPanel]+ , jmJiraIssueTabPanels :: Maybe [JIRAGenericTabPanel]+ , jmJiraComponentTabPanels :: Maybe [JIRAGenericTabPanel]+ , jmJiraReports :: Maybe [JIRAReport]+ , jmWebhooks :: Maybe [Webhook]+ , jmJiraWorkflowPostFunctions :: Maybe [JIRAWorkflowPostFunction]+ , jmJiraEntityProperties :: Maybe [JIRAEntityProperties] } deriving (Show, Generic) instance ToJSON JIRAModules where@@ -127,7 +127,7 @@ -- | A collection of all of the Confluence Modules that you can define. For more documentation on which Modules are supported -- the Atlassian Connect framework please see 'Modules'. You can also find more documentation on each of the modules. data ConfluenceModules = ConfluenceModules- { confluenceWebPanels :: [WebPanel]+ { confluenceWebPanels :: Maybe [WebPanel] } deriving (Show, Generic) instance ToJSON ConfluenceModules where@@ -137,11 +137,29 @@ -- | Empty JIRA Modules; useful when you only want to define a few modules via Haskell record syntax. emptyJIRAModules :: JIRAModules-emptyJIRAModules = JIRAModules [] [] [] [] [] Nothing [] [] [] [] [] [] [] [] [] [] []+emptyJIRAModules+ = JIRAModules+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing -- | Empty Confluence Modules; useful when you only want to define a few modules via Haskell record syntax. emptyConfluenceModules :: ConfluenceModules-emptyConfluenceModules = ConfluenceModules []+emptyConfluenceModules = ConfluenceModules Nothing -- | Represents the weight of an element in a menu. type Weight = Integer
tests/DescriptorTest.hs view
@@ -39,7 +39,7 @@ exampleJIRAModules :: JIRAModules exampleJIRAModules = emptyJIRAModules- { jmWebPanels =+ { jmWebPanels = Just [ WebPanel { wpKey = "test-web-panel" , wpName = simpleText "Test Web Panel"@@ -52,7 +52,7 @@ , wpLayout = Just $ WebPanelLayout (Pixels 963) (Percentage 40) } ]- , jmGeneralPages =+ , jmGeneralPages = Just [ JIRAPage { jiraPageKey = "test-general-page" , jiraPageName = simpleText "Test General Page"@@ -68,7 +68,7 @@ , jiraPageParams = HM.empty } ]- , jmWebhooks =+ , jmWebhooks = Just [ Webhook { webhookEvent = JiraIssueDeleted , webhookUrl = "/webhook/handle-deletion"
tests/ModulesTest.hs view
@@ -16,7 +16,7 @@ moduleTests = TestList [ testWebPanelCorrectFormat , testGeneralPageCorrectFormat- , testEmptyModulesAreShown+ , testEmptyModulesAreNotShown ] testWebPanelCorrectFormat :: Test@@ -65,9 +65,9 @@ (getNumber =<< get "weight" jv) `isEqualTo` 10000 (isArray <$> get "conditions" jv) @? "Expected the conditions to be present." -testEmptyModulesAreShown :: Test-testEmptyModulesAreShown = TestCase $ do+testEmptyModulesAreNotShown :: Test+testEmptyModulesAreNotShown = TestCase $ do let modules = Modules emptyJIRAModules emptyConfluenceModules let jv = toJSON modules- fieldIsPresent "webPanels" jv @? "Expected the field webPanels to be present"- fieldIsPresent "generalPages" jv @? "Expected the field webPanels to be present"+ fieldIsNotPresent "webPanels" jv @? "Expected the field webPanels to be present"+ fieldIsNotPresent "generalPages" jv @? "Expected the field webPanels to be present"