Closed laurwill closed 8 months ago
Did some quick searches, for the terms: terms of use terms of service terms and conditions rules of use terms & conditions
Some of these are test references, just making sure we flag it as those tests will fail if we change language they're verifying and they'll need updated as well. Also some are MHV. Not sure if their T&C is separate T&C or the same.
vets-website
Searching 8026 files for "terms of use"
~/code/vets-website/src/platform/user/authentication/components/FedWarning.jsx:
4 return (
5 <div className="vads-u-padding-bottom--2p5 fed-warning--v2 vads-u-color--gray-dark">
6: <h2 className="vads-u-margin-top--0">Terms of use</h2>
7 <p className="vads-u-font-size--base">
8 When you sign in to VA.gov, you’re using a United States federal
~/code/vets-website/src/platform/user/tests/authentication/components/FedWarning.unit.spec.js:
7 it('should render content as expected', () => {
8 const wrapper = shallow(<FedWarning />);
9: expect(wrapper.find('h2').text()).to.contains('Terms of use');
10 expect(wrapper.find('p').length).to.eql(4);
11 wrapper.unmount();
2 matches across 2 files
Searching 8026 files for "terms of service"
~/code/vets-website/src/applications/facility-locator/constants/mock-failed-location.json:
5 ],
6 "features": [],
7: "attribution": "NOTICE: © 2020 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."
8 }
~/code/vets-website/src/applications/facility-locator/constants/mock-geocoding-data.json:
224 }
225 ],
226: "attribution": "NOTICE: © 2020 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."
227 }
~/code/vets-website/src/applications/facility-locator/constants/mock-la-location.json:
51 }
52 ],
53: "attribution": "NOTICE: © 2020 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."
54 }
~/code/vets-website/src/applications/third-party-app-directory/components/SearchResult/index.jsx:
129 target="_blank"
130 >
131: {`View the ${item.name} terms of service`}
132 </a>
133 <a
T&C returns some null results from various yarn modules that I didn't list here, but for the ones that weren't clearly irrelevant, I went ahead and included.
Searching 8026 files for "terms and conditions"
~/code/vets-website/src/applications/dhp-connected-devices/components/TermsAndConditions.jsx:
44 rel="noreferrer"
45 >
46: VA.gov Terms and Conditions,
47 </a>{' '}
48 in addition to the following terms.
~/code/vets-website/src/applications/dhp-connected-devices/tests/components/TermsAndConditions.spec.jsx:
4 import { TermsAndConditions } from '../../components/TermsAndConditions';
5
6: describe('Terms and Conditions', () => {
7 const deviceNoTsAndCs = {
8 name: 'Test Vendor',
.
15 };
16
17: it('Renders vendor terms and conditions', () => {
18 const screen = render(<TermsAndConditions device={fitbitDevice} />);
19 expect(screen.getByTestId('fitbit-terms-and-conditions')).to.exist;
~/code/vets-website/src/applications/fry-dea/config/form.js:
1064 target="_blank"
1065 >
1066: View Terms and Conditions and Privacy Policy.
1067 </a>
1068 </>
~/code/vets-website/src/applications/my-education-benefits/components/TextNotificationsDisclaimer.jsx:
25 target="_blank"
26 >
27: Read our text notification terms and conditions
28 </a>
29 </p>
~/code/vets-website/src/applications/my-education-benefits/config/form.js:
998 target="_blank"
999 >
1000: View Terms and Conditions and Privacy Policy.
1001 </a>
1002 </>
~/code/vets-website/src/applications/terms-and-conditions/manifest.json:
1 {
2: "appName": "Terms and Conditions",
3 "entryFile": "./terms-and-conditions-entry.js",
4 "entryName": "terms-and-conditions",
~/code/vets-website/src/applications/terms-and-conditions/containers/MhvTermsAndConditions.jsx:
72 ? {
73 headline:
74: 'You’ve accepted the Terms and Conditions for using VA.gov health tools',
75 content: '',
76 status: 'success',
..
78 : {
79 headline:
80: 'Accept our terms and conditions to use VA.gov health tools',
81 content: (
82 <>
83 <p>
84 Before you can use the health tools on VA.gov, you’ll need to
85: read and agree to the terms and conditions below. This will give
86 us permission to share your VA medical information with you so
87 you can:
..
124 disabled={loading.acceptance}
125 >
126: Accept terms and conditions
127 </button>
128 );
...
134 return (
135 <AlertBox
136: headline="We failed to process the terms and conditions"
137 content="We’re sorry. Something went wrong on our end. Please try again later."
138 isVisible
...
148 <LoadingIndicator
149 setFocus
150: message="Accepting terms and conditions..."
151 />
152 );
...
155 if (loading.tc || loading.acceptance) {
156 return (
157: <LoadingIndicator setFocus message="Loading terms and conditions..." />
158 );
159 }
...
163 return (
164 <>
165: <h1>Terms and conditions for medical information</h1>
166 {this.renderBanner()}
167 <form onSubmit={this.handleSubmit}>
168: <h2>Terms and conditions</h2>
169 <div
170 dangerouslySetInnerHTML={{ __html: termsContent }}
...
186 className="columns medium-9"
187 role="region"
188: aria-label="Terms and Conditions"
189 >
190 {this.renderTermsAndConditions()}
~/code/vets-website/src/applications/terms-and-conditions/tests/00.terms-and-conditions.cypress.spec.js:
1 import manifest from '../manifest.json';
2
3: describe('Terms and Conditions test', () => {
4 it('Page loads and passes accessibility check', () => {
5 cy.visit(manifest.rootUrl);
~/code/vets-website/src/applications/terms-and-conditions/tests/containers/MhvTermsAndConditions.unit.spec.jsx:
19 title: 'T&C',
20 headerContent: 'header',
21: termsContent: 'terms and conditions',
22 yesContent: 'agree',
23 },
..
56 });
57
58: it('should show a loading indicator when fetching terms and conditions', () => {
59 const newProps = set('loading.tc', true, props);
60 const wrapper = shallow(<MhvTermsAndConditions {...newProps} />);
61 const loader = wrapper.find('LoadingIndicator');
62 expect(loader.exists()).to.be.true;
63: expect(loader.prop('message')).to.eq('Loading terms and conditions...');
64 wrapper.unmount();
65 });
..
70 const loader = wrapper.find('LoadingIndicator');
71 expect(loader.exists()).to.be.true;
72: expect(loader.prop('message')).to.eq('Loading terms and conditions...');
73 wrapper.unmount();
74 });
75
76: it('should show a loading indicator when accepting terms and conditions', () => {
77 const newProps = set('loading.acceptance', true, props);
78 const wrapper = shallow(<MhvTermsAndConditions {...newProps} />);
..
80 const loader = wrapper.find('LoadingIndicator');
81 expect(loader.exists()).to.be.true;
82: expect(loader.prop('message')).to.eq('Accepting terms and conditions...');
83 wrapper.unmount();
84 });
..
92 expect(alertBox.prop('status')).to.eq('success');
93 expect(alertBox.prop('headline')).to.eq(
94: 'You’ve accepted the Terms and Conditions for using VA.gov health tools',
95 );
96 wrapper.unmount();
~/code/vets-website/src/applications/terms-and-conditions/tests/reducers/index.unit.spec.js:
15 } from '../../actions';
16
17: describe('Terms and conditions reducer', () => {
18 it('should be loading when accepting terms', () => {
19 const state = reducer(undefined, { type: ACCEPTING_LATEST_TERMS });
~/code/vets-website/src/applications/toe/config/form.js:
1047 target="_blank"
1048 >
1049: Read our text notifications terms and conditions
1050 </a>
1051 </p>
~/code/vets-website/src/applications/toe/tests/fixtures/data/form-submission-test-data.js:
2215 rel: 'noopener noreferrer',
2216 target: '_blank',
2217: children: 'View Terms and Conditions',
2218 },
2219 _owner: null,
~/code/vets-website/src/platform/forms/selectors/review/index.js:
22 required: false,
23 field: 'AGREED',
24: label: 'I agree to the terms and conditions.',
25 error: 'You must accept the agreement before submitting.',
26 ...preSubmitInfo,
~/code/vets-website/src/platform/forms-system/src/js/review/SubmitController.jsx:
36 required: false,
37 field: 'AGREED',
38: label: 'I agree to the terms and conditions.',
39 error: 'You must accept the agreement before submitting.',
40 ...formConfig.preSubmitInfo,
~/code/vets-website/src/platform/forms-system/test/js/review/SubmitController.unit.spec.jsx:
710 const customComponent = tree.getByText('Hello from CustomComponent!');
711 const defaultComponent = tree.queryAllByText(
712: 'I agree to the terms and conditions.',
713 );
714
...
758 const customComponent = tree.queryAllByText('Hello from CustomComponent!');
759 const defaultComponent = tree.container.querySelector(
760: 'va-checkbox[label="I agree to the terms and conditions."]',
761 );
762
~/code/vets-website/src/platform/static-data/error-messages.jsx:
61 <li>
62 <strong>
63: Did you forget to accept My HealtheVet's terms and conditions?
64 </strong>{' '}
65 You need to sign in to My HealtheVet and accept their terms and
~/code/vets-website/src/platform/user/authorization/components/AcceptTermsPrompt.jsx:
109 className="small-12 columns usa-content"
110 role="region"
111: aria-label="Terms and Conditions"
112 tabIndex="0"
113 >
...
116 <div className="terms-box">
117 <div className="terms-head">
118: Scroll to read the full terms and conditions to continue
119 </div>
120 <div className="terms-scroller" onScroll={this.handleScroll}>
~/code/vets-website/src/platform/user/authorization/containers/MHVApp.jsx:
176
177 const alertProps = {
178: headline: `Thank you for accepting the Terms and Conditions for using VA.gov health tools`,
179 content: <p>You can now access health tools on VA.gov.</p>,
180 onCloseAlert: this.closeTcAcceptanceMessage,
...
316 <LoadingIndicator
317 setFocus
318: message="Redirecting to terms and conditions..."
319 />
320 );
~/code/vets-website/src/platform/user/tests/authorization/containers/MHVApp.unit.spec.jsx:
89 wrapper,
90 'success',
91: 'Thank you for accepting the Terms and Conditions for using VA.gov health tools',
92 );
93 wrapper.unmount();
47 matches across 22 files
Searching 8026 files for "rules of use"
0 matches
Searching 8026 files for "terms"
~/code/vets-website/babel.config.json:
134: "@department-of-veterans-affairs/platform-user/AcceptTermsPrompt": "./src/platform/user/authorization/components/AcceptTermsPrompt.jsx",
137: "@department-of-veterans-affairs/platform-user/RequiredTermsAcceptanceView": "./src/platform/user/authorization/container/RequiredTermsAcceptanceView.jsx",
~/code/vets-website/src/applications/dhp-connected-devices/components/DeviceDisconnectionCard.jsx:
3 import environment from 'platform/utilities/environment';
4 import { DisconnectModal } from './DisconnectModal';
5: import { TermsAndConditions } from './TermsAndConditions';
6
7 export const DeviceDisconnectionCard = ({ device }) => {
.
33 <span className="connected-header-text"> - Connected</span>{' '}
34 </h3>
35: <TermsAndConditions device={device} />
36 <p className="vads-u-margin-y--0">
37 <button
Searching 1142 files for "terms of use"
0 matches
Searching 1142 files for "terms of service"
0 matches
Searching 1142 files for "terms and conditions"
~/code/content-build/src/applications/registry.json:
138 },
139 {
140: "appName": "Terms and Conditions",
141 "entryName": "terms-and-conditions",
142 "rootUrl": "/health-care/medical-information-terms-conditions",
143 "template": {
144: "title": "Terms and Conditions for Medical Information",
145 "layout": "page-react.html",
146 "includeBreadcrumbs": true
2 matches in 1 file
Searching 1142 files for "rules of use"
0 matches
Searching 1142 files for "Terms & Conditions"
0 matches
This can be a starting point for us to get a check from devs, but in general, @jtmst if you have a few mins to take a look as a pre-refinement thing, we might be done here, or can pull in for whatever add'l work we may need.
Hi @jilladams , the unified terms of use product just went through design intent, and they're aiming to launch end of September. Would it be possible to slot in this audit work before the end of August, so our team has time to adjust the pages you identify? Thank you!
@laurwill ack. I do think my notes above are sufficient, but I'll prioritize getting a 2nd opinion on that and confirming. Thanks for reminding!
@laurwill confirmed, the code level audit is good.
CMS-wise:
Terms & Conditions / terms and conditions:
Let me know if you need more info here!
Thanks so much @jilladams ! This is great — I'll move these hits into an epic for our team to assess each one for updates.
@jilladams your note above says "CMS-wise" — so is the list in your last comment only the unauthenticated pages? Is there a separate list of hits in the authenticated experience?
Oh sorry, no -- I just meant: audits look in 2 places: In the content-build/vets-website code, and within CMS content. We've covered both here, as far as I'm aware. But: we don't much deal with the authenticated experience, so I will check with @davidconlon for further info on what the auth experience might entail if anything additional.
Ah okay — one place I know is missing from the "Terms of use" list is the sign-in modal. Would this type of audit not pick up mentions in modals or other specific types of content outside the CMS?
That one is covered in the top vets-website
result, in ~/code/vets-website/src/platform/user/authentication/components/FedWarning.jsx. That file contains the header and the content for the Terms of Use language that gets used in the auth modal.
To clarify my open question for Dave (that I'll follow up on today): In theory: everything not CMS related and veteran facing should be captured in the vets-website search, I think. But there may be authed apps with different front-ends you can reach via va.gov that our team doesnt know about / know where the code lives. But I guess: any instances like that would also fall outside your scope? Your team is involved on va.gov specifically, and not any other subdomains, right?
@laurwill discussed with Dave today, and he flagged that Public Websites can really only speak to the unauthed experience. Questions about the authed experience should go to the Authenticated or Benefits teams, just to make sure that our scan of vets-website includes any front-end Veteran experience that might be happening within the VA.gov authed experience.
Hi @jilladams , thanks for that clarification! I thought this audit process included auth content, so this is great to know. Just to clarify, is there a separate audit process through Auth and Benefits teams, or are you saying to show those teams this audit and ask if it's missing anything?
I don't know about an audit process for those teams, so would probably need to ask them, and also sharing our list would be a great starting point for them to confirm if vets-website does / doesn't cover all of their veteran-facing code.
@jilladams Do you know what the status of this ticket is? Something we should address and pull into Next Refinement, or icebox? Thanks in advance!
We can close this ticket, as the audit is complete, and CAIA would let us know if they needed more here. thanks for checking.
Indicate if you need front-end engineering support for
Describe your request
A new unified terms of use will be launching on all VA sites and tools. As part of this effort, we need to audit both auth and unauth content on VA.gov to identify existing terms of use-type content.
We'd like to talk about the best way to approach this—we may need to query a set of related terms like "terms of use," "terms of service," "terms and conditions," and "rules of use" in order to capture all the existing content.
Time constraints / launch deadlines
We don't have a confirmed launch date yet (lots of different teams and approvals involved), but aiming to be ready to launch in June. We'll need to do content work after the audit based on the results. Is it possible to fit the audit in May?
Your team name
Sitewide CAIA
Your product/team Slack channel
sitewide-content-ia
Your DEPO product owner
@DanielleThierryUSDSVA, Danielle Thierry
Your Product Manager
@RLHecht, Randi Hecht
Your designer(s)
No response
Your Front-end engineer(s)
No response
Other launch decision makers
@blacktm, Tom Black
Collateral for Front-end support
No response
Additional Information
No response
Notify Sitewide Public Websites of this issue, and tag @Wes Rowe & @jilladams.
#sitewide-public-websites
in Slack after submitting this issue.