Skip to content

Instantly share code, notes, and snippets.

@lejonmanen
lejonmanen / environment.py
Last active April 23, 2026 14:12
Environment file for Python + Playwright + behave
from playwright.sync_api import sync_playwright
# Runs before any scenarios
def before_all(context):
# Start Playwright and the browser - close it in after_all
context.playwright = sync_playwright().start()
context.browser_type = context.playwright.chromium
context.browser = context.browser_type.launch(headless=True)
# Runs at the start of each scenario
@lejonmanen
lejonmanen / calculator.feature
Created April 7, 2026 19:29
Python BDD exempel, Gherkin och behave
# Gör en Feature-fil för varje större feature i appen.
# Varje feature testas med ett eller flera scenarion.
# Varje scenario beskrivs med flera steg, som definieras i en separat step-fil.
#
# Även icke-tekniska personer ska kunna läsa och förstå vad dessa testscenarier går ut på.
#
Feature: Enkel kalkylator
Scenario: Addera två tal
@lejonmanen
lejonmanen / LoginForm.jsx
Created April 1, 2026 16:22
React-formulär med validering
/*
Exempel på validering av formulär
Förbättringar:
+ Flytta valideringslogik till en separat hook för återanvändbarhet.
+ Lägg till fokus på första fel för bättre tillgänglighet: inputRef.current.focus()
+ Lägg till visuell feedback på input (t.ex. border-färg) för bättre UX. Återkoppla med mer än färg.
*/
import { useState } from "react";
@lejonmanen
lejonmanen / App.jsx
Created March 31, 2026 12:21
React Suspense exempel
// App.jsx
import { Suspense } from 'react'
import './App.css'
import Loading from './Loading'
import Consumer from './Consumer'
const App = () => (
<div>
<Suspense fallback={<Loading />}>
<Consumer />
@lejonmanen
lejonmanen / python-ci.yml
Last active March 27, 2026 15:04
Exempel på YAML för Python
name: Python CI/CD
# Talar om när jobben ska köras. Denna inställning bevakar när man gör push eller pull request mot branchen "main".
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
@lejonmanen
lejonmanen / txt
Created November 14, 2025 13:18
Gott och blandat för grupparbete JavaScript grund
SVG är ett bildformat, som man kan skriva med HTML-syntax. Eftersom den består av HTML-element kan man välja ut de ingående delarna med hjälp av JavaScript.
Exempel
Filen innehåller:
<path id="scaffold" ...>
Skriv i JS:
const part1 = document.querySelector('#scaffold')
part1.classList.add('css-klass som gör elementet osynligt')
@lejonmanen
lejonmanen / Button.tsx
Created October 14, 2025 09:52
Button component with TypeScript and Tailwind
import React from 'react';
// this button can have all <button> props from standard HTML
type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
className?: string;
children?: React.ReactNode;
};
/* Example use:
<Button> I'm a button </Button>
@lejonmanen
lejonmanen / dynamodb-node.ts
Created September 14, 2025 15:22
Använda DynamoDB från Node
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { DynamoDBDocumentClient, GetCommand, PutCommand, ScanCommand } from "@aws-sdk/lib-dynamodb";
/*
GetCommand används för att hämta en specifik Item i en Table. (AWS rekommenderar att man har allt i samma tabell.)
ScanCommand kan hämta hela innehållet i en tabell. Opraktiskt om man har mycket data.
PutCommand lägger till en ny Item.
UpdateItemCommand ändrar en Item.
DeleteCommand
*/
@lejonmanen
lejonmanen / ask.ts
Created August 14, 2025 10:02
Node async readline
/* Exempel på användning:
import { ask } from './ask.ts'
let x: string = await ask('Vilken är din favoritfärg? ')
console.log('Du svarade: ' + x)
*/
import readline from 'node:readline'
async function ask(query: string): Promise<string> {
const rl = readline.createInterface({ input: process.stdin, output: process.stdout, tabSize: 4 });
@lejonmanen
lejonmanen / search.feature
Last active April 5, 2025 19:29
Exempel på Page Object för söksida för en musiktjänst
Feature: Musiksökning
Som en användare av musiktjänsten
Vill jag kunna söka efter musik
För att hitta musik jag gillar
Background:
Given att jag är inloggad på musiktjänsten
And att jag är på söksidan
Scenario: Söka efter musik med giltigt sökord