aboutsummaryrefslogtreecommitdiff
path: root/src/tools/json-diff/json-diff.e2e.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/json-diff/json-diff.e2e.spec.ts')
-rw-r--r--src/tools/json-diff/json-diff.e2e.spec.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/tools/json-diff/json-diff.e2e.spec.ts b/src/tools/json-diff/json-diff.e2e.spec.ts
new file mode 100644
index 0000000..5370060
--- /dev/null
+++ b/src/tools/json-diff/json-diff.e2e.spec.ts
@@ -0,0 +1,39 @@
+import { test, expect } from '@playwright/test';
+
+test.describe('Tool - JSON diff', () => {
+ test.beforeEach(async ({ page }) => {
+ await page.goto('/json-diff');
+ });
+
+ test('Has correct title', async ({ page }) => {
+ await expect(page).toHaveTitle('JSON diff - IT Tools');
+ });
+
+ test('Identical JSONs have a custom result message', async ({ page }) => {
+ await page.getByTestId('leftJson').fill('{"foo":"bar"}');
+ await page.getByTestId('rightJson').fill('{ "foo": "bar" } ');
+
+ const result = await page.getByTestId('diff-result').innerText();
+
+ expect(result).toContain('The provided JSONs are the same');
+ });
+
+ test('Different JSONs have differences listed', async ({ page }) => {
+ await page.getByTestId('leftJson').fill('{"foo":"bar"}');
+ await page.getByTestId('rightJson').fill('{"foo":"buz","baz":"qux"}');
+
+ const result = await page.getByTestId('diff-result').innerText();
+
+ expect(result).toContain(`{\nfoo: "bar""buz",\nbaz: "qux",\n},`);
+ });
+
+ test('Different JSONs have only differences listed when "Only show differences" is checked', async ({ page }) => {
+ await page.getByTestId('leftJson').fill('{"foo":"bar"}');
+ await page.getByTestId('rightJson').fill('{"foo":"bar","baz":"qux"}');
+ await page.getByRole('switch').click();
+
+ const result = await page.getByTestId('diff-result').innerText();
+
+ expect(result).toContain(`{\nbaz: "qux",\n},`);
+ });
+});