npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aft-jira

v12.1.1

Published

Automated Functional Testing (AFT) package supporting Jira integration for test execution control and logging

Downloads

19

Readme

AFT-Jira

provides Jira result logging as well as test execution filtering for users of aft-core by implementing plugins for the ReportingPlugin and PolicyPlugin plugin base classes.

JiraReportingPlugin

the JiraReportingPlugin extends from ReportingPlugin in aft-core. if enabled, this plugin will, upon receiving a failing test result, check for any existing open defects referencing the Test ID and if found, add a comment that the issue still exists or, if not found, will mark the defect as resolved. it can be enabled by including the following in your aftconfig.json file:

{
    "logLevel": "info",
    "plugins": [
        {"name": "jira-reporting-plugin", "searchDir": "./node_modules"}
    ],
    "JiraConfig": {
        "url": "https://your.jira.instance/",
        "accesskey": "your_jira_access_token",
        "openDefectOnFail": false,
        "closeDefectOnPass": false,
        "projectKey": "ABCD",
        "closedStatusCategoryName": "Done"
    }
}

JiraConfig:

  • url - string the url of your Jira instance
  • accesskey - string a valid API access token created under your Profile section in Jira
  • openDefectOnFail - bool if set to true a new defect will be created if a failed test result is received and not existing defect is found for the Test ID (defaults to false)
  • closeDefectOnPass - bool if set to true and a passing test result is received and an open defect is found for the Test ID then the defect will be closed as resolved, fixed (defaults to false)
  • projectKey - string the Jira project key (value displayed after projects in the URL when viewing the Jira Project) in which new issues will be created if openDefectOnFail is true
  • closedStatusCategoryName - string containing the name visible in the UI for closed Jira issues. this is used to lookup open issues and when transitioning issues to a closed state if closeDefectOnPass is true. (defaults to "Done")

JiraPolicyPlugin

the JiraPolicyPlugin extends from PolicyPlugin interface in aft-core. if enabled this plugin will search Jira for open defects referencing the specified Test IDs from the set of IDs specified in a AftTest and if found this plugin will return a result of false from the shouldRun function. it can be enabled by including the following in your aftconfig.json file:

{
    "logLevel": "info",
    "plugins": [
        {"name": "jira-policy-plugin", "searchDir": "./node_modules"}
    ],
    "JiraConfig": {
        "url": "https://your.jira.instance/",
        "accesskey": "your_jira_access_token",
        "policyEngineEnabled": true
    }
}

Configuration

to open or modify defects in Jira, you will need to have an account with both read and write permissions. These values can be specified in your aftconfig.json as follows:

{
    "JiraConfig": {
        "url": "http://fake.jira.io",
        "accesskey": "your_jira_access_token",
        "policyEngineEnabled": true
    }
}
  • url - [REQUIRED] the full URL to your instance of Jira. (NOTE: this is NOT the API URL, just the base domain name)
  • accesskey - string a valid API access token created under your Profile section in Jira
  • policyEngineEnabled - bool if set to true then any AftTest with a Test ID will first check that the test should be run via this plugin. any open defects referencing this Test ID will result in a false response (defaults to true)

Usage

you can submit results directly by calling the aft-core.ReportingManager.submitResult(result: TestResult) function or results will automatically be submitted if using the aft-core.AftTest(description, testFunction) with valid testCases specified in the options object.

via aft-core.ReportingManager:

let reporter = new ReportingManager({logName: 'example'});
await reporter.submitResult({
    testId: 'C3190',
    status: TestStatus.Failed,
    resultMessage: 'there was an error when running this test'
});

via aft-core.AftTest (aft-core.AftTest.run()):

/** 
 * new Jira Issue opened for `C3190`, `C2217763`, and `C3131`
 * following execution because `AftTest.status` on exit is `failed`
 * and `verify` call doesn't reference any test IDs
 * #### NOTE:
 * > if open defects exist then a comment is added indicating
 * the issue still occurs instead of creating a duplicate issue
 */
await aftTest('[C3190][C2217763][C3131]', async (t: AftTest) => {
    await t.verify((1 + 1), 3, 'expected to fail because 1+1 != 3');
});