Skip to content

Instantly share code, notes, and snippets.

View archieedwards's full-sized avatar

Archie archieedwards

View GitHub Profile
name: Commit as rich person
on:
push:
branches:
- main
jobs:
commit:
permissions:
// Example app.tsx file in a Next.js project
export default function App(){
useEffect(() => {
analytics.init(process.env.NEXT_PUBLIC_AMPLITUDE_API_KEY);
}, []);
return (
<FeatureFlagsProvider
amplitudeExperimentApiKey={
@archieedwards
archieedwards / stack.ts
Created March 20, 2023 12:09
AWS CDK - queue, lambda & slack alert
import * as cdk from "aws-cdk-lib";
import { Construct } from "constructs";
import * as sqs from "aws-cdk-lib/aws-sqs";
import { SqsEventSource } from "aws-cdk-lib/aws-lambda-event-sources";
import { Runtime } from "aws-cdk-lib/aws-lambda";
import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
import * as cloudwatchActions from "aws-cdk-lib/aws-cloudwatch-actions";
import * as sns from "aws-cdk-lib/aws-sns";
import {
LoggingLevel,
@archieedwards
archieedwards / helloworld.html
Created February 6, 2021 13:00
This gist comes from the code in the testing-gist-automation repo. It was created automatically by GitTrack.
<div>
<h1>Hello world</h1>
</div>
@archieedwards
archieedwards / example-head.html
Created February 6, 2021 13:00
This gist comes from the code in the testing-gist-automation repo. It was created automatically by GitTrack.
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
@archieedwards
archieedwards / boom.go
Created February 6, 2021 13:00
This gist comes from the code in the testing-gist-automation repo. It was created automatically by GitTrack.
func GetDetails() string {
return "wow this is gonna be good"
}
func testExecuteRequest_failure_noData() throws {
/// create mock to return nil
class NetworkMock : NetworkClientProtocol{
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void) {
completion(nil, nil)
}
}
/// inject mock and execute request
public final class NetworkClient {
private let n: NetworkClientProtocol
init(n: NetworkClientProtocol = URLSession.shared) {
self.n = n
}
func executeRequest(request: URLRequest, completion: @escaping (Result<Data, Error>) -> Void) {
n.executeRequest(request: request){ (data, error) in
if let error = error {
protocol NetworkClientProtocol {
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void)
}
extension URLSession: NetworkClientProtocol{
/// this is where the real request happens
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void) {
let task = dataTask(with: request) { (data, _, error) in
completion(data, error)
}
protocol NetworkClientProtocol {
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void)
}
extension URLSession: NetworkClientProtocol{
/// this is where the real request happens
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void) {
let task = dataTask(with: request) { (data, _, error) in
completion(data, error)
}