{
  "description": "Test the gantt format",
  "requires": {
    "Mermaid": ">= 2.0"
  },
  "setup": [
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "Display Title",
      "contents": "[[Has type::Text]]"
    },
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "Start Date",
      "contents": "[[Has type::Date]]"
    },
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "End Date",
      "contents": "[[Has type::Date]]"
    },
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "Status",
      "contents": "[[Has type::Text]]"
    },
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "Priority",
      "contents": "[[Has type::Text]]"
    },
    {
      "namespace": "SMW_NS_PROPERTY",
      "page": "Related To Section",
      "contents": "[[Has type::Page]]"
    },
    {
      "namespace": "NS_TEMPLATE",
      "page": "Task",
      "contents": "[[Category:Task]][[Display Title::{{{title|}}}]][[Start Date::{{{start|}}}]][[End Date::{{{end|}}}]][[Status::{{{status|}}}]][[Priority::{{{priority|}}}]][[Related To Section::{{{section|}}}]]"
    },
    {
      "page": "Gantt Test/Task1",
      "contents": "{{Task |title=Task01 |start=2019-01-01 |end=2019-01-15 |status=completed |priority=high |section=First Section }}"
    },
    {
      "page": "Gantt Test/Task2",
      "contents": "{{Task |title=Task02 |start=2019-01-15 |end=2019-01-31 |status=backlog |priority=low |section=Second Section }}"
    },
    {
      "page": "Gantt Test/Task3",
      "contents": "{{Task |title=Task03 |start=2019-02-01 |end=2019-02-15 |status=open |priority=critical |section=First Section }}"
    },
    {
      "page": "Gantt Test/Task4",
      "contents": "{{Task |title=Task04 |start=2019-02-15 |end=2019-02-28 |status=done |priority=very high |section=First Section }}"
    },
    {
      "page": "Example/Gantt Diagram min config",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt }}"
    },
    {
      "page": "Example/Gantt Diagram config all",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt |theme=forest |sortkey=title |bargap=15 |barheight=40 |titletopmargin=30 |leftpadding=130}}"
    },
    {
      "page": "Example/Gantt Diagram test axis format 1",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt | axisformat=%m/%d/%Y}}"
    },
    {
      "page": "Example/Gantt Diagram test axis format 2",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt | axisformat=%m/%Y}}"
    },
    {
      "page": "Example/Gantt Diagram test axis format 3",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt | axisformat=%B-%Y}}"
    },
    {
      "page": "Example/Gantt Diagram mapping test 1",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Status=status |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Priority=priority| format=gantt |theme=forest |sortkey=title |bargap=15 |barheight=40 |titletopmargin=30 |leftpadding=130}}"
    },
    {
      "page": "Example/Gantt priority mapping test",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Status=status |?Priority=priority| |prioritymapping=critical=>crit; very high=>crit| format=gantt |theme=forest |sortkey=title |bargap=15 |barheight=40 |titletopmargin=30 |leftpadding=130}}"
    },
    {
      "page": "Example/Gantt status mapping test",
      "contents": "{{#ask:[[Category:Task]] |?Display Title=task |?Start Date=startdate |?End Date=enddate |?Related To Section=section |?Status=status |?Priority=priority| |statusmapping=backlog=>active;open=>active;done=>done| format=gantt |theme=forest |sortkey=title |bargap=15 |barheight=40 |titletopmargin=30 |leftpadding=130}}"
    }
  ],
  "tests": [
    {
      "type": "parser-html",
      "about": "Test Selector of created SVG",
      "subject": "Example/Gantt Diagram min config",
      "assert-output": {
        "to-be-valid-html": 1,
        "to-contain": [
          ["div.mw-parser-output > div.srf-gantt",1]
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test gantt min config",
      "subject": "Example/Gantt Diagram min config",
      "skip-on": {
        "mediawiki": [ ">1.31.x", "MediaWiki changed handling of spaces &#160 vs. &nbsp; vs \" \"" ]
      },
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat&#160;%m\\/%d\\/%Y\\nsection First Section\\nTask01\\t&#160;:2019-01-01, 2019-01-15\\nTask03\\t&#160;:2019-02-01, 2019-02-15\\nTask04\\t&#160;:2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t&#160;:2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;default&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:75,&quot;titleTopMargin&quot;:25,&quot;barHeight&quot;:20,&quot;barGap&quot;:4&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test gantt min config",
      "subject": "Example/Gantt Diagram min config",
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat %m\\/%d\\/%Y\\nsection First Section\\nTask01\\t :2019-01-01, 2019-01-15\\nTask03\\t :2019-02-01, 2019-02-15\\nTask04\\t :2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t :2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;default&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:75,&quot;titleTopMargin&quot;:25,&quot;barHeight&quot;:20,&quot;barGap&quot;:4&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test gantt when all config params set",
      "subject": "Example/Gantt Diagram config all",
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat %m\\/%d\\/%Y\\nsection First Section\\nTask01\\t :2019-01-01, 2019-01-15\\nTask03\\t :2019-02-01, 2019-02-15\\nTask04\\t :2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t :2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;forest&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:130,&quot;titleTopMargin&quot;:30,&quot;barHeight&quot;:40,&quot;barGap&quot;:15&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test gantt when all config params set",
      "subject": "Example/Gantt Diagram config all",
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat %m\\/%d\\/%Y\\nsection First Section\\nTask01\\t :2019-01-01, 2019-01-15\\nTask03\\t :2019-02-01, 2019-02-15\\nTask04\\t :2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t :2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;forest&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:130,&quot;titleTopMargin&quot;:30,&quot;barHeight&quot;:40,&quot;barGap&quot;:15&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test axis forma %m/%d/%Y",
      "subject": "Example/Gantt Diagram test axis format 1",
      "assert-output": {
        "to-contain": [
          "axisFormat %m\\/%d\\/%Y"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test priority mapping",
      "subject": "Example/Gantt priority mapping test",
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat %m\\/%d\\/%Y\\nsection First Section\\nTask01\\t :2019-01-01, 2019-01-15\\nTask03\\t :crit, 2019-02-01, 2019-02-15\\nTask04\\t :crit, 2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t :2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;forest&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:130,&quot;titleTopMargin&quot;:30,&quot;barHeight&quot;:40,&quot;barGap&quot;:15&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    },
    {
      "type": "parser",
      "about": "Test priority mapping",
      "subject": "Example/Gantt status mapping test",
      "assert-output": {
        "to-contain": [
          "data-mermaid=\"&#123;&quot;content&quot;:&quot;gantt\\ndateFormat YYYY-MM-DD\\naxisFormat %m\\/%d\\/%Y\\nsection First Section\\nTask01\\t :2019-01-01, 2019-01-15\\nTask03\\t :active, 2019-02-01, 2019-02-15\\nTask04\\t :done, 2019-02-15, 2019-02-28\\nsection Second Section\\nTask02\\t :active, 2019-01-15, 2019-01-31\\n&quot;,&quot;config&quot;:&#123;&quot;theme&quot;:&quot;forest&quot;,&quot;gantt&quot;:&#123;&quot;leftPadding&quot;:130,&quot;titleTopMargin&quot;:30,&quot;barHeight&quot;:40,&quot;barGap&quot;:15&#125;&#125;&#125;\"><div class=\"mermaid-dots\"></div></div>"
        ]
      }
    }
  ],
  "settings": {
    "wgContLang": "en",
    "wgLang": "en",
    "smwgNamespacesWithSemanticLinks": {
      "NS_MAIN": true,
      "SMW_NS_PROPERTY": true
    }
  },
  "meta": {
    "version": "2",
    "is-incomplete": false,
    "debug": true
  }
}