diff --git a/acrobat/blocks/prompt-card/prompt-card.js b/acrobat/blocks/prompt-card/prompt-card.js index 0154b2be..12aa59e5 100644 --- a/acrobat/blocks/prompt-card/prompt-card.js +++ b/acrobat/blocks/prompt-card/prompt-card.js @@ -1,8 +1,10 @@ +/* eslint-disable prefer-template */ /* eslint-disable compat/compat */ import { setLibs } from '../../scripts/utils.js'; const miloLibs = setLibs('/libs'); const { createTag } = await import(`${miloLibs}/utils/utils.js`); +const { processTrackingLabels } = await import(`${miloLibs}/martech/attributes.js`); const classToastShow = 'prompt-toast--show'; const getPlaceHolder = (x) => (window.mph?.[x] || x); @@ -37,6 +39,7 @@ async function createBlock(element, cfg) { 'data-toast': cfg.toast, 'daa-im': true, 'daa-lh': 'Featured prompts | Executive summary', + 'daa-ll': 'promptcard-' + processTrackingLabels(cfg.prefix) + '-' + processTrackingLabels(cfg.title), }); const prefix = createTag('div', { class: 'prompt-prefix' }); const icon = createTag('img', { diff --git a/test/blocks/prompt-card/mocks/body-template-group-more.html b/test/blocks/prompt-card/mocks/body-template-group-more.html new file mode 100644 index 00000000..b33359f9 --- /dev/null +++ b/test/blocks/prompt-card/mocks/body-template-group-more.html @@ -0,0 +1,55 @@ +
+
+
+
+
Prefix
+
Ask
+
+
+
Rows
+
1
+
+
+
+
+
+
Title
+
Prompt
+
+
+
Sum it up
+
Summarize this document in 3 sentences.
+
+
+
Organize your thoughts
+
Suggest a few essay topics based on this reading that can help me get started.
+
+
+
Refresh your memory.
+
Provide 10 sample test questions that my professor could ask me.
+
+
+
Point out tech advantages
+
What are the key benefits for users of this proposed technology solution?
+
+
+
Point out tech advantages
+
What are the key benefits for users of this proposed technology solution?
+
+
+
Shorten up the intro
+
Rewrite the introduction so it has only 200 words and a Flesch reading score above 50.
+
+
+ +
+
\ No newline at end of file diff --git a/test/blocks/prompt-card/prompt-card-template-group-more.test.js b/test/blocks/prompt-card/prompt-card-template-group-more.test.js new file mode 100644 index 00000000..15358a88 --- /dev/null +++ b/test/blocks/prompt-card/prompt-card-template-group-more.test.js @@ -0,0 +1,27 @@ +/* eslint-disable no-promise-executor-return */ +/* eslint-disable compat/compat */ +import { readFile } from '@web/test-runner-commands'; +import { expect } from '@esm-bundle/chai'; +import { delay } from '../../helpers/waitfor.js'; + +describe('prompt-cards using the template and group features', () => { + before(async () => { + document.head.innerHTML = await readFile({ path: './mocks/head.html' }); + document.body.innerHTML = await readFile({ path: './mocks/body-template-group-more.html' }); + await import('../../../acrobat/scripts/scripts.js'); + await delay(500); + await new Promise((resolve) => requestAnimationFrame(resolve)); + }); + + it('creates prompt cards', () => { + const blades = document.querySelectorAll('.prompt-card:not(.hidden)'); + expect([...blades].length).to.equal(2); + }); + + it('shows all cards after click view-all button', async () => { + const button = document.querySelector('.view-all .con-button'); + button.click(); + const promptcards = document.querySelectorAll('.prompt-card:not(.hidden)'); + expect([...promptcards].length).to.equal(6); + }); +});