cucumber wrap long scenario names - formatting

People are creating long scenario name. Is there a way to wrap them for better readablity? Here's an example:
As an Auth User with migrated Service, when I navigate to Settings -> Your Info -> Discover More, I should see the Spectrum Mobile Spectial Offers and Updates card with a toggle button
I would like it to look like this:
As an Auth User with migrated Service,
when I navigate to Settings -> Your Info -> Discover More,
I should see the Spectrum Mobile Spectial Offers and Updates card with a toggle button
is there a way to do that?

Related

Shopify - Embedded App - User session and webhooks

I'm fairly new to Shopify development and I'm trying to understand the best way to address our requirement. Apologies if some of these are basic questions.
The intent is to build an embedded public application that is intended to:
Have a floating component that's present on all pages on the online
store.
React to the user journey e.g. do stuff when the user adds
items to cart, completes a checkout, etc.
Send events to our server through the journey to allow our server to provide relevant
info, regardless of the store theme.
Have the ability to do this at an individual session level i.e. not all users will have the same experience.
I had a few questions around this:
Will it be possible to add the script to the main theme page and
have it load on all pages?
Is there a better alternative, particularly if the integration is supposed to be light-touch for admins?
What is the best way to get access to the individual user session from the app (assuming we can request the appropriate permissions as a part of the app installation)?
Is app bridge and session token required for this?
Is it possible to build this app using Angular? I understand Shopify framework is API-based and in theory any UI framework should work, but will a deeper linking with the user session be possible with Angular?
If we get enable web hooks for the various events, would it be a reliable way to detect events happening in the user journey? If so, what will be the correlation id between the events from the app and the web hooks?
Is it possible to detect the page the user is in, regardless of the theme? For example: Is there a way to identify that the user has added an item to the cart regardless of the theme used or is a webhook our best bet for those events?
Thanks in advance!
There is one thing you can do that would support most of your needs. Create an App, and set that App up with a Proxy. Shopify will then support the customer centric store theme to use a secure Ajax callback to your App using the proxy. So you can always call a proxy like /tool/customer_check with or without a customer ID from anywhere in the store.
You can imagine how powerful that is. You can return Liquid or more commonly, JSON. Boom! You're in business.
Of course, there are alternatives, all with the caveat your mileage may vary. None of this is predicated on any particular tech stack, meaning you can use what you like and know.

Logic for parking payment

I want to create an app for faster payment of parking.
This question is more about logic of my app, and what tools I need to use about creating it.
At this point, I use a parking place every day and I pay for it through the web page.
I do it like this.
Login to page.
click on the menu and it redirects me to www.parkingexample.page/payments
there is a search menu and I enter my car plate number if my car is found it returns me how much I need to pay, and "Pay" Button appears.
I click "Pay" buttons and then it's all done.
So my goal is to create an app that when I start it will automatically connect to the page and will search for my plate and if found and payment is needed there would be just one button "Pay"
So I think I should do it like this, but as I haven't created any web app(I'm 100% back-end developer) I ask you is my thought process is correct.
And also I don't want to use WebView as I think it's not necessary for me.
When I start my app it sends "POST" request to page to login.
Then I send 'GET' request to www.parkingexample.page/payments with params = 'mycarspaltenumber'
Somehow I need to click on PAY button on page when it appears so I think it's probably again 'POST' request, but at this point, I'm not sure.
So a QUESTION is, is my logic valid? or it can be done in some other way?
UPDATE. ADDED SCREENSHOTS
First Screen shoot this is the menu after I logged in with the search bar where I need to enter my card plate.
Second screen is where I found my car(Entered plate number and clicked search)
and now the page is updated with sum I have to pay and there is a button "PAID" in the bottom right corner I need to click.
And that's all i need.
To validate whether your suggested sequence is correct I would start by capturing your typical browser session between yourself and your parking provider with something like Fiddler. Then I would use HTTP client library of choice (for C# it would be something like HttpClient) and emulate the same flow with correct headers, query parameters and such like.
Looknig at your screenshots it seems the application is ASP.NET Web Forms, which can get a bit painful to emulate due to way its state management works: you will likely need to decode View state object (to ensure you're passing it back correctly) and locate all dynamic field ids that it uses for postbacks. This however is very doable.
If you discover that the above is too hard to emulate (or there's javascript involved) it might be easier to explore Remote Selenium WebDriver coupled with a headless browser like PhantomJS. You'd then have your PhantomJS interact with the page on your server, and you'll drive it with your mobile app. Basically you'll reduce the complexity of your parking provider page to a well documented API.
Hopefully that gives you a starting point
In your application, all that you will need is services call and the security part of logging a new user everytime to check for payment.
So It will be a simple spring-boot application, where you can use the security part for logging, and you can exactly use the simple way , for example you don't need to have a database, just to redirect your page, and if you are not familiar to front-end framework, you can use a basic html-css pages for client side.
Another important point, you should start by designing your application, before coding, because it's very important to know all the ideas behind your application.
Enjoy your doing time!

User Emulation for app testing in Dynamics 365

In the Service Now platform there is a feature that emulates users. Is there a one in Dynamics 365 ? As of now, I am opening multiple tabs in different browsers to test user apps/forms/solutions.
No out of the box feature for this.
Couple of ideas;
Use Firefox in conjunction with Multi-Account Containers. This allows you to effectively have multiple active sessions for different users open within a single browser. This might be easier to manage.
Use a single user, but write code to automate the switching of security roles. This way you can rapidly switch between different user roles.
Unfortunately, there is no way to do User experience emulation of different persona by OOB or with community tools. Only way is different browser window with different credentials (In-cognito or Run as different user).
Only simulator available is in Form editor - Preview option, to see how the Form looks-like with Tab/Section/Fields in Create/Update/Read-Only mode for Desktop Client.
With some Chrome Addins, we can impersonate a different user only on Unified Interface (UCI) not on web UI. Read more
Essentially, we just need to add the MSCRMCallerID header to every API request.  One way to do this is using the "ModHeader" extension for Google Chrome.  Once you have it installed, create a new profile to add the header to all requests for your environment.  It should look something like this...the MSCRMCallerID is the GUID of the user you want to impersonate.

Apple Developer account - how can I automatically switch team?

Is there a way to automatically (i.e. programatically, via a specified URL, or by some other means) switch team after logging into the Apple Developer portal, but without using Fastlane? I have the following scenario:
I have a user who is admin on 2 different Apple Developer accounts
I want to log into the Apple Developer portal as the user, and do the following:
Access the 'Certificates, IDs & Profiles' section, and switch to using the team that I specify
Access iTunes Connect using the team that I specify
The reason I need this is that I want to automate logging into the Apple Developer portal and perform some maintenance tasks against a specific team, and Fastlane isn't an option right now.
I've tried using the following URL for accessing the 'Certificates, IDs & Profiles' section:
https://developer.apple.com/account/ios/certificate/?teamId=MY_TEAM_ID
however it doesn't switch to the specified team. I've tried a similar thing for iTunes Connect using the 'switch' parameter on the URL, but that doesn't automatically switch either.
It's a little bit tricky:
For the account overview page, the different links are working:
https://developer.apple.com/account/#/overview/ABCDEFGHI
But for the actual certificates page, Apple saves the team ID in local storage. If you change it here, it will show/get you the page you want.
As iTunes Connect is a completely different site, the team selection seems to be based on cookie values, but them look to be encrypted or something.
It really depends on what kind of "Maintenance tasks" you want to do.

WebSQL chrome admin tool

I am building an app using a web SQL database. I remember seeing somewhere that there is a way using Google Chrome to inspect the web SQL databases,
however I can't find the correct way of doing this.
You can inspect databases with Chrome DevTools using the Resources Panel.
Using PersistenceJS there is a persistence.reset API which will wipe the database clean.
PersistenceJS Site
For developing / testing purposes, you can view content and delete webSQL, IndexedDB, cookies, etc by searching for your domain name at this URL in Chrome:
chrome://settings/cookies
There, you can delete all the storage for a domain or just certain local storage entities. Yes, the URL implies just 'cookies', but the interface at this URL includes all types of offline storage.
It would be great I think if the Chrome developer tools interface had the ability to right-click and delete a data storage entity in the Resources tab along with inspecting the content. But for now, all I know of is the settings/cookies URL.
You can use keyboard shortcut Ctrl + Shift + i to open developer tools on Chrome.
Then go to resources tab (pink oval in screenshot below)
When there click on WebSQL and you will see list of databases that you can expand (red oval in screenshot below).