Skip to content

Commit

Permalink
Merge branch 'ver-13.15.0' into production
Browse files Browse the repository at this point in the history
  • Loading branch information
kekey1 committed Apr 29, 2024
2 parents 665b1d1 + 9ca9a5e commit 18b83db
Show file tree
Hide file tree
Showing 89 changed files with 3,967 additions and 1,965 deletions.
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"max-len": ["off"],
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
"import/order": ["error", {"newlines-between": "always"}],
"react/forbid-prop-types": ["warn"],
},
"overrides": [
{
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ e2e/config/urls.js
!.yarn/releases
!.yarn/sdks
!.yarn/versions
src/app/aws-exports.js
17 changes: 17 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Release Notes

## Version 13.15.0
_29 April 2024_

### Features
* View Cognito user information
* Display changes to "Functionalities Tested" on management page
* Display SVAP activity on maintenance page
* Display "Standards" activity on management page

### User Interface Updates
* Only display status of Developers when they are not active

### Flagged Features
* Enable SSO sign-in

---

## Version 13.14.0
_15 April 2024_

Expand Down
16 changes: 8 additions & 8 deletions e2e/components/cms-widget/cms-widget.readonly.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('on cms widget', () => {
});

it('should say No Products Selected text', async () => {
await expect(await Promise.all(cms.widgetText.map(async p => await p.getText()))).toEqual([
await expect(await Promise.all(cms.widgetText.map(async (p) => await p.getText()))).toEqual([
'No products selected.',
'Note: the selected products must meet 100% of the Base Criteria. For assistance, view the CHPL Public User Guide or Base Criteria.',
'To view which products were used to create a specific CMS ID, use the CMS ID Reverse Lookup.',
Expand Down Expand Up @@ -72,7 +72,7 @@ describe('on cms widget', () => {
await expect(await (await cms.progressBarValue()).getAttribute('aria-valuenow')).toBe('70');
});

it('should have missing base criteria list', async () => {
xit('should have missing base criteria list', async () => {
await expect(await cms.missingBaseCriteriaListOr.isDisplayed()).toBe(true);
await expect(await (await cms.missingBaseCriteriaListAnd()).isDisplayed()).toBe(true);
});
Expand Down Expand Up @@ -122,13 +122,13 @@ describe('on cms widget', () => {
cms.waitForProcessingSpinnerToDisappear();
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should have progress bar with the right text and value', async () => {
await expect(await cms.progressBarText.getText()).toBe('100% Base Criteria Met');
await expect(await (await cms.progressBarValue()).getAttribute('aria-valuenow')).toBe('100');
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should not have missing base criteria list', async () => {
await expect(await cms.missingBaseCriteriaListOr.isDisplayed()).toBe(false);
await expect(await (await cms.missingBaseCriteriaListAnd()).isDisplayed()).toBe(false);
Expand All @@ -139,23 +139,23 @@ describe('on cms widget', () => {
await expect(await (await cms.cmsIdReverseLookupLink()).getAttribute('href')).toBe(cmsReverseLookup);
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should not have a base criteria link', async () => {
await expect(await (await cms.baseCriteriaLink()).isDisplayed()).toBe(false);
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should not have link to CHPL public guide', async () => {
await expect(await cms.chplPublicUserGuideLink.isDisplayed()).toBeFalse();
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should have remove all products button and enabled', async () => {
await expect(await (await cms.removeProductsButton()).isDisplayed()).toBe(true);
await expect(await (await cms.removeProductsButton()).isClickable()).toBe(true);
});

//ignoring these tests as they are flaky - will address these tests later
// ignoring these tests as they are flaky - will address these tests later
xit('should have get cert Id button and enabled', async () => {
await expect(await (await cms.getCertIdButton()).isDisplayed()).toBe(true);
await expect(await (await cms.getCertIdButton()).isClickable()).toBe(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ describe('managing complaints', () => {
await expect(await (await complaintsComponent.getComplaintCell(complaint, ACB_ID_IDX)).getText()).toBe(fields.acbId);
});

it('should be able to add new complaint with optional fields for a 2015 listing', async () => {
xit('should be able to add new complaint with optional fields for a 2015 listing', async () => {
const timestamp = Date.now();
const fields = {
body: 'Drummond Group',
Expand Down
2 changes: 1 addition & 1 deletion e2e/pages/administration/complaints/edit-complaint.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ describe('when editing complaints', () => {
await expect(await complaintsComponent.fieldError('closed-date')).toBe('Closed Date must not be in the future');
});

it('should be able to close complaint by adding closed date and actions', async () => {
xit('should be able to close complaint by adding closed date and actions', async () => {
const STATUS_IDX = 0;
const timestamp = Date.now();
const fields = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class FunctionalitiesTestedPage extends SystemMaintenancePage {
practiceType: '#practiceType',
additionalInformation: '#additional-information',
dataTable: 'table[aria-label="Functionalities Tested table"]',
detailsButton: 'button[aria-label="Open Functionalities Tested Activity dialog"]',
};
}

Expand Down Expand Up @@ -50,6 +51,10 @@ class FunctionalitiesTestedPage extends SystemMaintenancePage {
get additionalInformation() {
return $(this.elements.additionalInformation);
}

get detailsButton() {
return $(this.elements.detailsButton);
}
}

export default FunctionalitiesTestedPage;
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ describe('the Functionalities Tested component', () => {
await expect(await page.getTitle()).toBe('System Maintenance');
});

it('should have Details button', async () => {
await expect(await (await page.detailsButton).isDisplayed()).toBe(true);
});

it('should be able to add and edit Functionality Tested', async () => {
const funcTestedValue = `1FunctionalityTested - ${Date.now()}`;
const newfuncTestedValue = `2FunctionalityTested - ${Date.now()}`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class standardsPage extends SystemMaintenancePage {
standardEndDay: '#end-day',
additionalInformation: '#additional-information',
dataTable: 'table[aria-label="Standards table"]',
detailsButton: 'button[aria-label="Open Standards Activity dialog"]',
};
}

Expand Down Expand Up @@ -45,6 +46,10 @@ class standardsPage extends SystemMaintenancePage {
get additionalInformation() {
return $(this.elements.additionalInformation);
}

get detailsButton() {
return $(this.elements.detailsButton);
}
}

export default standardsPage;
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ describe('the Standards component', () => {
await expect(await page.getTitle()).toBe('System Maintenance');
});

it('should have Details button', async () => {
await expect(await (await page.detailsButton).isDisplayed()).toBe(true);
});

it('should be able to add and edit Standards', async () => {
const standardsValue = `1Standards - ${Date.now()}`;
const newstandardsValue = `2Standards - ${Date.now()}`;
Expand Down
5 changes: 5 additions & 0 deletions e2e/pages/administration/system-maintenance/svap/svap.po.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class SvapPage extends SystemMaintenancePage {
itemName: '#approved-standard-version',
criterionSelector: '#criteria-select',
dataTable: 'table[aria-label="SVAP table"]',
detailsButton: 'button[aria-label="Open SVAP Activity dialog"]',
};
}

Expand All @@ -20,6 +21,10 @@ class SvapPage extends SystemMaintenancePage {
get criterionSelector() {
return $(this.elements.criterionSelector);
}

get detailsButton() {
return $(this.elements.detailsButton);
}
}

export default SvapPage;
4 changes: 4 additions & 0 deletions e2e/pages/administration/system-maintenance/svap/svap.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ describe('the svap component', () => {
await expect(await page.getTitle()).toBe('System Maintenance');
});

it('should have Details button', async () => {
await expect(await (await page.detailsButton).isDisplayed()).toBe(true);
});

it('should be able to add and edit svaps', async () => {
const version = `0Test - ${Date.now()}`;
const newVersion = `1Test - ${Date.now()}`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,21 @@ describe('the Test Tools component', () => {
await expect(await page.getTitle()).toBe('System Maintenance');
});

it('should be able to add and edit Test Tools', async () => {
xit('should be able to add and edit Test Tools', async () => {
const toolValue = `1TestTool - ${Date.now()}`;
const newToolValue = `2TestTool - ${Date.now()}`;
const initialCount = (await page.getData()).length;
await (await page.addButton).click();
await (await page.citation).setValue('Citation-01-TestTool');
await (await page.itemName).setValue(toolValue);
await (await page.criterionSelector).click();
await browser.keys(['ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'Enter']);//to select removed 170.315 (b)(6) criteria as it is not used in other tests
await browser.keys(['ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'Enter']);// to select removed 170.315 (b)(6) criteria as it is not used in other tests
await (await page.ruleSelector).click();
await browser.keys(['ArrowDown', 'ArrowDown','ArrowDown', 'ArrowDown', 'Enter']);
await browser.keys(['ArrowDown', 'ArrowDown', 'ArrowDown', 'ArrowDown', 'Enter']);
await (await page.testToolStartDay).click();
await browser.keys(['ArrowUp', 'Tab','ArrowUp', 'Tab','ArrowUp', 'Tab', 'Tab']);
await browser.keys(['ArrowUp', 'Tab', 'ArrowUp', 'Tab', 'ArrowUp', 'Tab', 'Tab']);
await (await page.testToolEndDay).click();
await browser.keys(['ArrowDown', 'Tab','ArrowDown', 'Tab','ArrowDown', 'Tab', 'Tab']);
await browser.keys(['ArrowDown', 'Tab', 'ArrowDown', 'Tab', 'ArrowDown', 'Tab', 'Tab']);
await action.save();
await browser.waitUntil(async () => (await page.getData()).length > initialCount);
await expect(await (await page.dataTable).getText()).toContain(toolValue);
Expand Down
4 changes: 2 additions & 2 deletions e2e/pages/organizations/developers/developers.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ describe('the Developers page', () => {
});
});

describe('when on the "athenahealth, Inc." Developer page which has listings owned by multiple ACBs', () => {
xdescribe('when on the "athenahealth, Inc." Developer page which has listings owned by multiple ACBs', () => {
beforeEach(() => {
const developer = 'athenahealth, Inc.';
page = new DevelopersPage();
Expand Down Expand Up @@ -149,7 +149,7 @@ describe('the Developers page', () => {
});
});

describe('when looking at developer with more than one product', () => {
xdescribe('when looking at developer with more than one product', () => {
beforeEach(() => {
const developer = 'Greenway Health, LLC';
page = new DevelopersPage();
Expand Down
46 changes: 23 additions & 23 deletions e2e/pages/organizations/developers/products.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ describe('the Product part of the Developers page', () => {
page.selectAllCertificationStatus();
});

describe('when looking at "PrimeSuite" product', () => {
xdescribe('when looking at "PrimeSuite" product', () => {
const name = 'PrimeSuite';
let product;
beforeEach(() => {
Expand Down Expand Up @@ -90,7 +90,7 @@ describe('the Product part of the Developers page', () => {
page.getProductInfo(product).waitForDisplayed({ timeout: 55000 });
});

it('should have an edit button', () => {
xit('should have an edit button', () => {
expect(page.getEditButton(product)).toBeDisplayed();
});

Expand Down Expand Up @@ -132,7 +132,7 @@ describe('the Product part of the Developers page', () => {
});
});

describe('when planning to change "MediaDent 10.0 using SuccessEHS 7.20"\'s name', () => {
xdescribe('when planning to change "MediaDent 10.0 using SuccessEHS 7.20"\'s name', () => {
const name = 'MediaDent 10.0 using SuccessEHS 7.20';
let product;
beforeEach(() => {
Expand Down Expand Up @@ -168,26 +168,26 @@ describe('the Product part of the Developers page', () => {
});
});

xdescribe('when editing "Zoobook EHR" product under "Zoobook Systems LLC"', () => {
it('should not allow user to transfer all products away from that developer', () => {
const developer = 'Zoobook Systems LLC';
const name = 'Zoobook EHR';
let product;
page.selectDeveloper(developer);
page.getDeveloperPageTitle(developer).waitForDisplayed();
page.selectAllCertificationStatus();
product = page.getProduct(name);
product.scrollIntoView({ block: 'center', inline: 'center' });
page.selectProduct(product);
page.editProduct(product);
page.editProductsHeader.waitForDisplayed();
hooks.waitForSpinnerToDisappear();
page.selectProductOwner('ZirMed - active');
actionBar.save();
browser.waitUntil(() => toast.toastMessage.isDisplayed());
expect(toast.toastMessage.getText()).toEqual('Zoobook Systems LLC has no other products so this product cannot be transferred. Please contact ONC if this is needed.');
});
});
xdescribe('when editing "Zoobook EHR" product under "Zoobook Systems LLC"', () => {
it('should not allow user to transfer all products away from that developer', () => {
const developer = 'Zoobook Systems LLC';
const name = 'Zoobook EHR';
let product;
page.selectDeveloper(developer);
page.getDeveloperPageTitle(developer).waitForDisplayed();
page.selectAllCertificationStatus();
product = page.getProduct(name);
product.scrollIntoView({ block: 'center', inline: 'center' });
page.selectProduct(product);
page.editProduct(product);
page.editProductsHeader.waitForDisplayed();
hooks.waitForSpinnerToDisappear();
page.selectProductOwner('ZirMed - active');
actionBar.save();
browser.waitUntil(() => toast.toastMessage.isDisplayed());
expect(toast.toastMessage.getText()).toEqual('Zoobook Systems LLC has no other products so this product cannot be transferred. Please contact ONC if this is needed.');
});
});
});

describe('when logged in as an ONC', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ describe('the Version part of the Developers page', () => {
expect(page.getActiveVersion(product, productId)).toHaveTextContaining(version);
});

it('should require the version', () => {
xit('should require the version', () => {
page.mergeVersion(product);
page.moveVersionToBeMerged(versionToBeMerged);
page.versionName.clearValue();
Expand Down
2 changes: 1 addition & 1 deletion e2e/pages/organizations/developers/versions.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ describe('the Version part of the Developers page', () => {
page.getProductInfo(product).waitForDisplayed({ timeout: 55000 });
});

it('should have a version split, but not a product split', () => {
xit('should have a version split, but not a product split', () => {
page.getSplitButton(product).click();
expect(page.getSplitButton(product)).toExist();
expect(page.getProductSplitButton(product).getText()).toBe('Product\n(Cannot split Product with only one Version)');
Expand Down
4 changes: 2 additions & 2 deletions e2e/pages/resources/chpl-api/api.readonly.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ describe('the CHPL API page', () => {
await expect(await page.getBodyText()).toContain('Entire collection of a set of certified products, including all data elements. The file is in a JSON format, and the definition of that structure can be found in the "Schemas" section of the "Certified Health IT Product Listing API" documentation.');
});

it('should allow users to register for API key', async () => {
xit('should allow users to register for API key', async () => {
await page.register('test', '[email protected]');
await (browser.waitUntil(async () => (await (toast.toastMessage)).isDisplayed()));
await expect(await (await toast.toastMessage).getText()).toEqual('To confirm your email address, an email was sent to: [email protected] Please follow the instructions in the email to obtain your API key.');
});

it('should have controllers and endpoints information', async () => {
xit('should have controllers and endpoints information', async () => {
await (await (page.announcementsController).scrollIntoView());
await hooks.waitForSpinnerToDisappear();
await (await page.attestationController).click();
Expand Down
6 changes: 3 additions & 3 deletions e2e/pages/surveillance/reporting/quarterly/quarterly.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ describe('the quarterly surveillance reporting page', () => {
await expect(await (await quarterlyPage.disclosureSummary).getValue()).toBe(updatedFields.disclosureSummary);
});

it('can edit surveillance data of relevant listings under quarterly report', async () => {
xit('can edit surveillance data of relevant listings under quarterly report', async () => {
const surData = {
outcome: '3',
grounds: `grounds ${timestamp}`,
Expand Down Expand Up @@ -98,7 +98,7 @@ describe('the quarterly surveillance reporting page', () => {
await expect(await (await quarterlyPage.verificationCap).getValue()).toBe(surData.verificationCap);
});

it('can edit complaints', async () => {
xit('can edit complaints', async () => {
await (await reportingPage.editQuarterlyReport(acb, year, quarter)).click();
await quarterlyPage.waitForQuarterToBeFullyLoaded(`${acb} - ${year} - ${quarter}`);
await (await quarterlyPage.complaintsHeader).click();
Expand All @@ -108,7 +108,7 @@ describe('the quarterly surveillance reporting page', () => {
});
});

describe('when working with future reports', () => {
xdescribe('when working with future reports', () => {
const acb = 'Drummond Group';
const year = 2024;
const quarter = 'Q4';
Expand Down
Loading

0 comments on commit 18b83db

Please sign in to comment.