Skip to content

Instantly share code, notes, and snippets.

View mandemeskel's full-sized avatar
💭
Trolling Gëøff Thé

Michael T. Andemeskel mandemeskel

💭
Trolling Gëøff Thé
  • Oakland, CA
View GitHub Profile
@mandemeskel
mandemeskel / chat_prompt_template_langchain_rag_agent.py
Last active April 22, 2024 06:07
Use prompt templates with LangChain RAG agent.
import os
# if not in your .env file
os.environ['OPENAI_API_KEY'] = ''
from langchain_community.document_loaders import TextLoader
from langchain.tools.retriever import create_retriever_tool
from langchain import hub
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
@mandemeskel
mandemeskel / auth.setup.ts
Created March 11, 2024 07:29
Retool, Setup File for Loging in on Test Start
import { test as setup} from '@playwright/test'
import { LoginTapi } from '../tapis/login_tapi'
const authFile = './playwright/.auth/user.json'
setup('saves login state', async ({ page }) => {
const login_tapi = new LoginTapi(page)
await login_tapi.login()
@mandemeskel
mandemeskel / activation.spec.ts
Created March 11, 2024 07:28
Retool, User Activation Test
import { User } from '@/types/user_types'
import { CreateUserTapi } from '../tapis/create_user_tapi'
import { LoginTapi } from '../tapis/login_tapi'
import { test, type Page } from '@playwright/test'
import { openCreateUserTab } from '@/open_tabs'
test.describe.configure({ mode: 'serial' })
let page: Page
@mandemeskel
mandemeskel / create_user_tapi.ts
Created March 11, 2024 07:24
Retool, Create User Testing API
import { Page, expect } from '@playwright/test'
import { User } from '@/types/user_types'
export class CreateUserTapi {
constructor(protected user: User, public page: Page) {
this.page = page
}
@mandemeskel
mandemeskel / retool_login_tapi.ts
Last active March 10, 2024 04:58
Login Testing API for Retool
import { Page, expect } from "@playwright/test"
export class LoginTapi {
constructor(public page: Page) {
this.page = page
}
@mandemeskel
mandemeskel / firebae_mocks.ts
Created September 8, 2023 01:19
create one place where all your mocks are created
import JestMockers from "@tests/jest_mockers"
import { Database } from "firebase/database"
namespace FirebaseMocks {
export function createAppInitMock() {
const app_mock = jest.fn()
const initializeAppMock = jest.fn()
initializeAppMock.mockReturnValue(app_mock)
@mandemeskel
mandemeskel / user_tapi.ts
Created September 8, 2023 01:15
example of testing API
import DataTypes from "@/models/data_types"
import User, { UpdateFindType } from "@/models/user"
import SaleL3Types from "@blogic/sale_l3_types"
import L3DataGenerators from "@tests/l3_data_generators"
import * as user_model_creator from "@tests/shared/user_model_creator"
namespace UserTapi {
export function createQuickBooksUser() {
@mandemeskel
mandemeskel / email_sender_send.spec.ts
Created September 8, 2023 01:04
Example of test organization, using gnerators for test data and mocks.
import { createErrorServiceErrorMock } from "@tests/shared/error_service_mock"
const {
setApiKey,
send
} = createSendGridMock()
createErrorServiceErrorMock()
import EmailTypes from "@app/email_types"
import EmailSender from "@/use_cases/email/email_sender"
@mandemeskel
mandemeskel / constructor.spec.ts
Created September 8, 2023 00:57
constructor tests for a query class
import createNqbMock from "@tests/shared/nqb_mock"
const nqb_mock = createNqbMock()
const qb_mock = {
sendRequest: nqb_mock.mockSendRequest,
}
import UnpaidInvoicesFromDateQueryTapi from "./unpaid_invoices_from_date_query_tapi"
import unpaidInvoicesFromDateQueryFactory, { UnpaidInvoicesFromDateQuery } from "@qb/query_wrappers/unpaid_invoices_from_date_query"
import { QbApiType } from "@qb/request"
import date_abstraction, { DateWrapper } from "@/libs/date_abstraction"
@mandemeskel
mandemeskel / vue_test_matchers.ts
Created July 17, 2023 09:46
Vue Test Matchers to Decouple Your Tests from Vue
import { Wrapper } from "@vue/test-utils"
// https://gist.github.com/mandemeskel/2b109df0ad2665de4c4519f2ddd6d507
import * as VueTestHelpers from "./vue_test_helpers"
export function expectElementNotToBeRequired(
it_or_page: Wrapper<any>,
selector?: string,
) {