Skip to content

Instantly share code, notes, and snippets.

@adamcameron
adamcameron / ttfLifeCycleFunctionsTest.cfm
Created May 18, 2022 18:57
TTF tests for lifecycle functions
View ttfLifeCycleFunctionsTest.cfm
<cfscript>
void function run() {
beforeAll(() => {
tinyTest.debug.setByBeforeAll = true
})
describe("Tests of beforeEach", () => {
describe("Tests without beforeEach (top)", () => {
result = []
it("was called before any usage of beforeEach", () => {
@adamcameron
adamcameron / ttfMatcherFunctionsTest.cfm
Last active May 18, 2022 18:59
TTF tests for matcher functions
View ttfMatcherFunctionsTest.cfm
<cfscript>
void function run() {
describe("Tests of toBe", () => {
it("passes if the actual and expected values are equal", () => {
var actual = "TEST_VALUE"
var expected = "TEST_VALUE"
result = expect(actual).toBe(expected)
if (isNull(result) || !result) {
throw(type="TinyTest.TestFailedException")
@adamcameron
adamcameron / ttfOtherFunctionsTest.cfm
Last active May 19, 2022 11:48
TTF tests for misc functions that don't fit another category
View ttfOtherFunctionsTest.cfm
<cfscript>
void function run() {
describe("Tests of it", () => {
it("prefixes its message with ""It""", () => {
savecontent variable="message" {
it("IS A TEST MESSAGE", () => {})
}
tinyTest.results.pass--
expect(message).toInclude("It IS A TEST MESSAGE")
})
@adamcameron
adamcameron / AbstractBase.cfc
Created May 16, 2022 17:37
Jim Partin repro. Maybe. Dunno.
View AbstractBase.cfc
abstract component {
function init() {
writeOutput("AbstractBase init called<br>")
}
}
@adamcameron
adamcameron / afterAllBasicTest.cfm
Created May 14, 2022 20:48
First test for afterAll functionality of TinyTestFramework
View afterAllBasicTest.cfm
<cfscript>
function run() {
afterAll(() => {
writeOutput("afterAll ran OK")
})
describe("Tests of afterAll", () => {
it("is a simple test", () => {
expect(true).toBeTrue()
})
@adamcameron
adamcameron / passingTestForTinyTestFramework.cfm
Created May 14, 2022 20:17
A test to load into the saved gist that has the framework loaded as setupcode in trycf.com
View passingTestForTinyTestFramework.cfm
<cfscript>
function run() {
describe("some tests", () => {
it("a passing test", () => {
expect(true).toBe(true)
})
})
}
tinyTest.runTests()
View ttf.cfm
<style>.tt{background-color:black;color:white;font-family:monospace}.tt div {margin-left:1em}.tt .p{color:green}.tt .f{color:red}.tt .e{background-color:red;color:black}</style><cfscript>_={r={p=0,f=0,e=0},runTests=()=>{writeOutput('<div class="tt">');run();_.u();writeOutput('</div>')},u=()=>{savecontent variable="local.r"{writeOutput("<div>Results: [Pass: #_.r.p#] [Fail: #_.r.f#] [Error: #_.r.e#] [Total: #_.r.p + _.r.f + _.r.e#]</div>")}writeOutput(r)},c=[],d=(l,g)=>{_.i(()=>{try{writeOutput("#l#<br>");_.c.push({});g()}catch(any e){writeOutput("Error: #e.message#<br>")}finally{_.c.pop()}})},s=(c)=>{return _.c.last().x=c},t=(c)=>{return _.c.last().y=c},w=(c)=>{return _.c.last().z=c},it=(l,t)=>{_.i(()=>{try{writeOutput("It #l#: ");_.c.filter((c)=>c.keyExists("x")).each((c)=>c.x());d=_.c.filter((c)=>c.keyExists("z")).reduce((r,c)=>r.prepend(c),[]).reduce((d,c)=>()=>c.z(d),t);d();_.c.filter((c)=>c.keyExists("y")).reduce((j,c)=>j.prepend(c),[]).each((c)=>c.y());_.l()}catch(TT e){_.k()}catch(any e){_.b(e)}})},e=(a
View combinedTinyTestFrameworkAndTests.cfm
<style>
.tinytest {background-color: black; color:white; font-family:monospace}
.tinytest div {margin-left: 1em}
.tinyTest .pass {color:green;}
.tinyTest .fail {color:red;}
.tinyTest .error {background-color:red; color:black}
</style>
<cfscript>
tinyTest = {
@adamcameron
adamcameron / testContext.cfm
Last active May 9, 2022 13:24
testing how to deal with beforeEach / afterEach
View testContext.cfm
<style>
.tinytest {background-color: black; color:white; font-family:monospace}
.tinytest div {margin-left: 1em}
.tinyTest .pass {color:green;}
.tinyTest .fail {color:red;}
.tinyTest .error {background-color:red; color:black}
</style>
<cfscript>
baseContext = []
View ttf.cfm
<style>
.tinytest {background-color: black; color:white; font-family:monospace}
.tinytest div {margin-left: 1em}
.tinyTest .pass {color:green;}
.tinyTest .fail {color:red;}
.tinyTest .error {background-color:red; color:black}
</style>
<cfscript>
tinyTest = {