2025-02-26 17:22:37 +01:00
|
|
|
const { test, expect, hardcodedSessionUuid } = require('./test-setup');
|
2025-02-26 14:20:53 +01:00
|
|
|
|
2025-02-26 17:22:37 +01:00
|
|
|
const SessionCreated = require('../src/models/SessionCreated');
|
2025-02-26 13:57:24 +01:00
|
|
|
const SessionRelatedToPublickey = require('../src/models/SessionRelatedToPublickey');
|
|
|
|
|
const NymSet = require('../src/models/NymSet');
|
|
|
|
|
const ContactDetailsSet = require('../src/models/ContactDetailsSet');
|
2025-02-27 12:24:17 +01:00
|
|
|
const OfferDetailsSet = require('../src/models/OfferDetailsSet');
|
2025-02-26 13:57:24 +01:00
|
|
|
|
2025-02-26 23:56:14 +01:00
|
|
|
test('Mock records are present', async () => {
|
2025-02-26 13:57:24 +01:00
|
|
|
for (const someModel of [
|
2025-02-26 17:22:37 +01:00
|
|
|
SessionCreated,
|
2025-02-26 13:57:24 +01:00
|
|
|
SessionRelatedToPublickey,
|
|
|
|
|
NymSet,
|
|
|
|
|
ContactDetailsSet,
|
|
|
|
|
]) {
|
|
|
|
|
expect(await someModel.findOne()).toBeTruthy();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2025-02-26 17:22:37 +01:00
|
|
|
test('Hardcoded session cookie is there', async ({ context }) => {
|
|
|
|
|
const page = await context.newPage();
|
2025-02-26 14:20:53 +01:00
|
|
|
const cookiesInPage = await page.context().cookies();
|
|
|
|
|
expect(cookiesInPage).toHaveLength(1);
|
|
|
|
|
expect(cookiesInPage[0].name).toBe('sessionUuid');
|
2025-02-26 17:22:37 +01:00
|
|
|
expect(cookiesInPage[0].value).toBe(hardcodedSessionUuid);
|
2025-02-26 14:20:53 +01:00
|
|
|
});
|
|
|
|
|
|
2025-02-26 17:22:37 +01:00
|
|
|
test('Offers is reachable', async ({ context }) => {
|
|
|
|
|
const page = await context.newPage();
|
2025-02-26 14:20:53 +01:00
|
|
|
|
2025-02-26 17:22:37 +01:00
|
|
|
await page.goto('http://localhost/offers');
|
|
|
|
|
const createOfferButton = page.locator('#button-start-create-offer');
|
|
|
|
|
await expect(createOfferButton).toBeVisible();
|
|
|
|
|
await expect(createOfferButton).toContainText('Crear nueva oferta');
|
|
|
|
|
});
|
2025-02-26 23:56:14 +01:00
|
|
|
|
|
|
|
|
test('Create an offer with a few options creates in DB', async ({
|
|
|
|
|
context,
|
|
|
|
|
}) => {
|
|
|
|
|
const page = await context.newPage();
|
|
|
|
|
await page.goto('http://localhost/offers');
|
|
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Crear nueva oferta' }).click();
|
2025-02-27 18:26:36 +01:00
|
|
|
await expect(page.locator('#close-offer-controls-area')).toBeVisible();
|
2025-02-26 23:56:14 +01:00
|
|
|
await page.getByRole('button', { name: 'Quiero vender Bitcoin' }).click();
|
|
|
|
|
await page.getByRole('button', { name: 'Quiero comprar Bitcoin' }).click();
|
|
|
|
|
await page.getByRole('button', { name: '+' }).click();
|
|
|
|
|
await page.getByRole('button', { name: '+' }).click();
|
|
|
|
|
await page.getByRole('button', { name: '+' }).click();
|
|
|
|
|
await page.getByRole('button', { name: '-' }).click();
|
|
|
|
|
await expect(page.locator('#premium-value')).toContainText('2%');
|
|
|
|
|
await page.locator('#input-eur-amount').click();
|
|
|
|
|
await page.locator('#input-eur-amount').press('ControlOrMeta+a');
|
|
|
|
|
await page.locator('#input-eur-amount').fill('50');
|
|
|
|
|
await expect(page.locator('#input-eur-amount')).toHaveValue('50');
|
|
|
|
|
await page
|
|
|
|
|
.getByText(
|
|
|
|
|
'Añade los detalles de tu oferta Quiero comprar Bitcoin Quiero vender Bitcoin'
|
|
|
|
|
)
|
|
|
|
|
.click();
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('textbox', { name: '¿Dónde? Ej."Eixample", "La' })
|
|
|
|
|
.click();
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('textbox', { name: '¿Dónde? Ej."Eixample", "La' })
|
|
|
|
|
.fill('En algún lugar');
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('textbox', { name: '¿Cuándo? Ej."Cualquier hora' })
|
|
|
|
|
.click();
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('textbox', { name: '¿Cuándo? Ej."Cualquier hora' })
|
|
|
|
|
.fill('En algún momento');
|
|
|
|
|
await page.locator('#onchain-checkbox').uncheck();
|
|
|
|
|
await expect(page.locator('#onchain-checkbox')).not.toBeChecked();
|
|
|
|
|
await expect(page.locator('#lightning-checkbox')).toBeChecked();
|
|
|
|
|
await page.locator('#my-trusted-trusted-checkbox').uncheck();
|
|
|
|
|
await page.locator('#all-members-checkbox').check();
|
|
|
|
|
await page.locator('#my-trusted-trusted-checkbox').check();
|
2025-02-27 12:24:17 +01:00
|
|
|
await expect(page.locator('#my-trusted-trusted-checkbox')).toBeChecked();
|
2025-02-26 23:56:14 +01:00
|
|
|
await page.locator('#all-members-checkbox').uncheck();
|
2025-02-27 12:24:17 +01:00
|
|
|
await expect(page.locator('#all-members-checkbox')).not.toBeChecked();
|
2025-02-26 23:56:14 +01:00
|
|
|
await page.locator('#large-bills-checkbox').check();
|
2025-02-27 12:24:17 +01:00
|
|
|
await expect(page.locator('#large-bills-checkbox')).toBeChecked();
|
2025-02-27 18:26:36 +01:00
|
|
|
|
2025-02-26 23:56:14 +01:00
|
|
|
await page.getByRole('button', { name: 'Publicar oferta' }).click();
|
2025-02-27 18:26:36 +01:00
|
|
|
await expect(page.locator('#offer-created-confirmation')).toBeInViewport();
|
|
|
|
|
await expect(
|
|
|
|
|
page.locator('#offer-created-confirmation')
|
|
|
|
|
).not.toBeInViewport();
|
|
|
|
|
await expect(page.locator('#close-offer-controls-area')).not.toBeVisible();
|
2025-02-27 12:24:17 +01:00
|
|
|
|
|
|
|
|
const createdOfferDetailsSetRecord = await OfferDetailsSet.findOne();
|
|
|
|
|
expect(createdOfferDetailsSetRecord.wants).toBe('BTC');
|
|
|
|
|
expect(createdOfferDetailsSetRecord.premium).toBe('0.02');
|
|
|
|
|
expect(createdOfferDetailsSetRecord.trade_amount_eur).toBe(50);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.location_details).toBe('En algún lugar');
|
|
|
|
|
expect(createdOfferDetailsSetRecord.time_availability_details).toBe(
|
|
|
|
|
'En algún momento'
|
|
|
|
|
);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.show_offer_to_trusted).toBe(true);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.show_offer_to_trusted_trusted).toBe(true);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.show_offer_to_all_members).toBe(false);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.is_onchain_accepted).toBe(false);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.is_lightning_accepted).toBe(true);
|
|
|
|
|
expect(createdOfferDetailsSetRecord.are_big_notes_accepted).toBe(true);
|
2025-02-26 23:56:14 +01:00
|
|
|
});
|