Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New expression: displayValue #1341

Merged
merged 10 commits into from
Aug 1, 2023
Merged

New expression: displayValue #1341

merged 10 commits into from
Aug 1, 2023

Conversation

bjosttveit
Copy link
Member

@bjosttveit bjosttveit commented Jul 21, 2023

Description

Adds a new expression function: ["displayValue", "<componentId>"], which returns the formatted string representation of the component's form data which can be used to build texts. To make this work I had to convert all of the hooks used into get-functions with the required state as arguments. The hooks are preserved but use the get-functions under the hood to avoid duplicate implementations (similar to useLanguage)

Shared tests:

  • Hidden component
  • Null
  • Missing component
  • Component without display value
  • Input component
  • Input component with number format
  • Address component
  • Datepicker component
  • Custom component
  • List component
  • Map component
  • Textarea component
  • Checkboxes component
  • Radiobuttons component
  • Multiple select component
  • Dropdown component
  • FileUpload component
  • FileUploadWithTag component
  • Likert component

Related Issue(s)

Verification/QA

  • Manual functionality testing
    • I have tested these changes manually
    • Creator of the original issue (or service owner) has been contacted for manual testing (or will be contacted when released in alpha)
    • No testing done/necessary
  • Automated tests
    • Unit test(s) have been added/updated
    • Cypress E2E test(s) have been added/updated
    • No automatic tests are needed here (no functional changes/additions)
    • I want someone to help me make some tests
  • UU/WCAG (follow these guidelines until we have our own)
    • I have tested with a screen reader/keyboard navigation/automated wcag validator
    • No testing done/necessary (no DOM/visual changes)
    • I want someone to help me perform accessibility testing
  • User documentation @ altinn-studio-docs
    • Has been added/updated
    • No functionality has been changed/added, so no documentation is needed
    • I will do that later/have created an issue
  • Changes/additions to component properties
    • Changes are reflected in both src/layout/layout.d.ts and layout.schema.v1.json, and these are all backwards-compatible
    • No changes made
  • Support in Altinn Studio
    • Issue(s) created for support in Studio
    • This change/feature does not require any changes to Altinn Studio
  • Sprint board
    • The original issue (or this PR itself) has been added to the Team Apps project and to the current sprint board
    • I don't have permissions to do that, please help me out
  • Labels
    • I have added a kind/* label to this PR for proper release notes grouping
    • I don't have permissions to add labels, please help me out

@bjosttveit bjosttveit added the kind/product-feature Pull requests containing new features label Jul 21, 2023
@bjosttveit bjosttveit marked this pull request as ready for review July 31, 2023 09:55
Copy link
Contributor

@olemartinorg olemartinorg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! 👏 Maybe we should add a unit-test to make sure every (new) component implementing getDisplayValue() has a corresponding shared test for this expression function? 🤔 That way we would ensure the backend gets a push to implement new components for this functionality as well.

@bjosttveit
Copy link
Member Author

Great work! 👏 Maybe we should add a unit-test to make sure every (new) component implementing getDisplayValue() has a corresponding shared test for this expression function? 🤔 That way we would ensure the backend gets a push to implement new components for this functionality as well.

Great idea!

@sonarcloud
Copy link

sonarcloud bot commented Aug 1, 2023

SonarCloud Quality Gate failed.    Quality Gate failed

Bug C 11 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 7 Code Smells

83.5% 83.5% Coverage
1.7% 1.7% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/product-feature Pull requests containing new features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add displayValue function to Expressions.
2 participants