Skip to content

Commit

Permalink
feat: add test cases for getstarted and step1
Browse files Browse the repository at this point in the history
  • Loading branch information
tejaskh3 committed Jan 5, 2025
1 parent 3aec7d0 commit 8544e34
Show file tree
Hide file tree
Showing 5 changed files with 139 additions and 0 deletions.
8 changes: 8 additions & 0 deletions app/components/identity/blocked.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<div class='identity-box-heading' data-test-blocked-heading>Status Blocked</div>
<div class='identity-box-desc' data-test-blocked-desc>The system failed to link
your profile service with the Identity service,
<span class='identity-box-desc-bold'>Please try again!</span></div>
<button
class='identity-box-button'
data-test-blocked-button type="button" {{on 'click' (fn @setState 'step1')}}
>Retry</button>
6 changes: 6 additions & 0 deletions app/components/identity/verified.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<div class='identity-box-heading' data-test-verified-heading>Verified</div>
<div class='identity-box-desc' data-test-verified-desc><span
class='identity-box-desc-bold'
>Congratulations!!!</span>
You did it, go ahead and tell in the community that you verified your profile
service.</div>
2 changes: 2 additions & 0 deletions app/templates/identity.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
<Identity::Step3 @setState={{this.setState}} />
{{else if (eq this.state 'reload')}}
<Identity::Reload />
{{else if (eq this.state 'verified')}}
<Identity::Verified />
{{/if}}
</div>

Expand Down
52 changes: 52 additions & 0 deletions tests/integration/components/identity/get-started.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { module, test } from 'qunit';
import { setupRenderingTest } from 'website-www/tests/helpers';
import { render, click } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';

module('Integration | Component | identity/get-started', function (hooks) {
setupRenderingTest(hooks);

test('it renders the get started component correctly', async function (assert) {
this.set('setState', () => {});
await render(hbs`
<Identity::GetStarted @setState={{this.setState}}/>
`);

assert.dom('[data-test-getStarted-heading]').exists();
assert
.dom('[data-test-getStarted-heading]')
.hasText('Qualification Criteria');

assert.dom('[data-test-getStarted-desc]').exists();
assert
.dom('[data-test-getStarted-desc]')
.containsText('To update your profile details');
assert
.dom('[data-test-getStarted-desc] a')
.hasAttribute(
'href',
'https://github.com/Real-Dev-Squad/sample-profile-service',
);

assert.dom('[data-test-getStarted-button]').exists();
assert.dom('[data-test-getStarted-button]').hasText('Get Started');
});

test('clicking get started button triggers setState action with step1', async function (assert) {
assert.expect(1);

this.set('setState', (state) => {
assert.strictEqual(
state,
'step1',
'setState action is called with step1',
);
});

await render(hbs`
<Identity::GetStarted @setState={{this.setState}}/>
`);

await click('[data-test-getStarted-button]');
});
});
71 changes: 71 additions & 0 deletions tests/integration/components/identity/step1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { module, test } from 'qunit';
import { setupRenderingTest } from 'website-www/tests/helpers';
import { render, click, waitFor } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';

module('Integration | Component | identity/step1', function (hooks) {
setupRenderingTest(hooks);

test('it renders the initial state correctly', async function (assert) {
this.set('setState', () => {});
await render(hbs`<Identity::Step1 @setState={{this.setState}}/>`);

assert
.dom('[data-test-step1-heading]')
.hasText('Step 1: Chaincode Generation');
assert.dom('[data-test-step1-desc]').exists();
assert.dom('[data-test-step1-button]').hasText('Generate Chaincode');
assert.dom('[data-test-step1-next-button]').doesNotExist();
});

test('it handles chaincode generation', async function (assert) {
this.set('setState', () => {});
await render(hbs`<Identity::Step1 @setState={{this.setState}}/>`);

await click('[data-test-step1-button]');
await waitFor('.identity-chaincode-box');

assert.dom('[data-test-step1-chaincode]').hasText('********************');
assert.dom('[data-test-step1-next-button]').exists();
assert.dom('[data-test-step1-button]').doesNotExist();
});

test('it toggles chaincode visibility', async function (assert) {
this.set('setState', () => {});
await render(hbs`<Identity::Step1 @setState={{this.setState}}/>`);

await click('[data-test-step1-button]');
await waitFor('.identity-chaincode-box');

const initialText = await document
.querySelector('[data-test-step1-chaincode]')
.textContent.trim();
await click('[data-test-step1-eye]');
const visibleText = await document
.querySelector('[data-test-step1-chaincode]')
.textContent.trim();

assert.notEqual(
initialText,
visibleText,
'Chaincode visibility should toggle',
);
assert.notEqual(
visibleText,
'********************',
'Chaincode should be visible',
);
});

test('it handles next button click', async function (assert) {
let nextClicked = false;
this.set('setState', () => (nextClicked = true));
await render(hbs`<Identity::Step1 @setState={{this.setState}}/>`);

await click('[data-test-step1-button]');
await waitFor('[data-test-step1-next-button]');
await click('[data-test-step1-next-button]');

assert.true(nextClicked, 'Next button should trigger setState');
});
});

0 comments on commit 8544e34

Please sign in to comment.